:root{--cream:#f7f4ed;--cream-sidebar:#f0ede6;--cream-input:#f7f4ed;--charcoal:#1c1c1c;--charcoal-off:#fcfbf8;--muted:#5f5f5d;--border:#eceae4;--border-active:#1c1c1c66;--code-bg:#e8e5de;--code-fg:#1c1c1c;--tint-03:#1c1c1c08;--tint-04:#1c1c1c0a;--tint-07:#1c1c1c12;--tint-40:#1c1c1c66;--tint-82:#1c1c1cd1;--shadow-inset:#fff3 0px .5px 0px 0px inset, #0003 0px 0px 0px .5px inset, #0000000d 0px 1px 2px 0px;--shadow-focus:#0000001a 0px 4px 12px;--font:"Camera Plain Variable", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"Fira Code", "Cascadia Code", "JetBrains Mono", Consolas, monospace;--r-xs:4px;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--r-pill:9999px;--sidebar-w:260px;--header-h:52px;--t-fast:.1s ease;--t-base:.18s ease}[data-theme=dark]{--cream:#1c1917;--cream-sidebar:#161310;--cream-input:#222018;--charcoal:#f0ede6;--charcoal-off:#1c1917;--muted:#7a7670;--border:#2e2b26;--border-active:#f0ede659;--tint-03:#f0ede608;--tint-04:#f0ede60a;--tint-07:#f0ede612;--tint-40:#f0ede666;--tint-82:#f0ede6d1;--shadow-inset:#ffffff0f 0px .5px 0px 0px inset, #00000080 0px 0px 0px .5px inset, #0000004d 0px 1px 2px 0px;--shadow-focus:#f0ede612 0px 4px 12px;--code-bg:#262320;--code-fg:#f0ede6}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{font-family:var(--font);background:var(--cream);color:var(--charcoal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:15px;line-height:1.6}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input,textarea{font-family:inherit;font-size:inherit}a{color:var(--charcoal);text-decoration:underline}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--r-pill)}::-webkit-scrollbar-thumb:hover{background:var(--tint-40)}.app-layout{width:100%;height:100%;display:flex;overflow:hidden}.login-screen{background:var(--cream);background-image:radial-gradient(at 30% 40%,#1c1c1c08 0%,#0000 60%),radial-gradient(at 75% 70%,#1c1c1c05 0%,#0000 50%);justify-content:center;align-items:center;width:100%;min-height:100%;padding:24px;display:flex}.login-card{background:var(--cream);border:1px solid var(--border);border-radius:var(--r-xl);width:100%;max-width:380px;padding:40px 36px}.login-header{text-align:center;margin-bottom:32px}.login-logo{background:var(--charcoal);border-radius:var(--r-lg);width:48px;height:48px;box-shadow:var(--shadow-inset);color:var(--charcoal-off);letter-spacing:-.5px;justify-content:center;align-items:center;margin-bottom:16px;font-size:22px;font-weight:600;display:inline-flex}.login-logo-img{width:auto;height:40px;margin-bottom:20px;margin-left:auto;margin-right:auto;display:block}.login-title{color:var(--charcoal);letter-spacing:-.5px;margin-bottom:5px;font-size:22px;font-weight:600}.login-subtitle{color:var(--muted);font-size:14px}.login-form{flex-direction:column;gap:14px;display:flex}.login-field{flex-direction:column;gap:6px;display:flex}.login-label{color:var(--muted);font-size:13px;font-weight:400}.login-input{background:var(--cream-input);border:1px solid var(--border);border-radius:var(--r-sm);width:100%;color:var(--charcoal);transition:border-color var(--t-fast), box-shadow var(--t-fast);outline:none;padding:9px 13px;font-size:14px}.login-input::placeholder{color:#5f5f5d99}.login-input:focus{border-color:var(--border-active);box-shadow:var(--shadow-focus)}.login-input:disabled{opacity:.5;cursor:not-allowed}.login-error{border-radius:var(--r-sm);color:#b93a20;background:#c8321e0f;border:1px solid #c8321e33;align-items:center;gap:8px;padding:9px 13px;font-size:13px;display:flex}.sso-btn{color:#1a1a1a;border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;width:100%;transition:background var(--t-fast), box-shadow var(--t-fast);background:#fff;justify-content:center;align-items:center;gap:10px;margin-bottom:4px;padding:10px 20px;font-size:14px;font-weight:500;display:flex;box-shadow:0 1px 2px #0000000f}.sso-btn:hover:not(:disabled){background:#f5f5f5;box-shadow:0 1px 4px #0000001a}.sso-btn:disabled{opacity:.55;cursor:not-allowed}.login-divider{color:var(--muted);align-items:center;gap:10px;margin:14px 0;font-size:12px;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--border);flex:1;height:1px}.sso-loading{height:100vh;color:var(--muted);justify-content:center;align-items:center;font-size:15px;display:flex}.login-submit{background:var(--charcoal);width:100%;color:var(--charcoal-off);border-radius:var(--r-sm);box-shadow:var(--shadow-inset);cursor:pointer;transition:opacity var(--t-fast), box-shadow var(--t-fast);margin-top:4px;padding:10px 20px;font-size:14px;font-weight:400}.login-submit:hover:not(:disabled){opacity:.88}.login-submit:active:not(:disabled){opacity:.8}.login-submit:focus-visible{box-shadow:var(--shadow-focus)}.login-submit:disabled{opacity:.45;cursor:not-allowed}.login-spinner{border:1.5px solid #fcfbf859;border-top-color:var(--charcoal-off);vertical-align:middle;border-radius:50%;width:13px;height:13px;margin-right:8px;animation:.7s linear infinite spin;display:inline-block}.sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--cream-sidebar);border-right:1px solid var(--border);flex-direction:column;height:100%;display:flex;overflow:hidden}.sidebar-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 14px 10px;display:flex}.sidebar-brand{letter-spacing:-.2px;color:var(--charcoal);align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.sidebar-brand-logo{width:auto;height:28px;display:block}.sidebar-brand-mark{background:var(--charcoal);border-radius:var(--r-xs);width:26px;height:26px;box-shadow:var(--shadow-inset);color:var(--charcoal-off);flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex}.sidebar-new-btn{border:1px solid var(--border-active);border-radius:var(--r-sm);color:var(--charcoal);transition:opacity var(--t-fast), box-shadow var(--t-fast);align-items:center;gap:5px;padding:5px 10px;font-size:13px;display:flex}.sidebar-new-btn:hover{opacity:.7}.sidebar-new-btn:active{opacity:.8}.sidebar-search{flex-shrink:0;padding:10px 12px 6px}.sidebar-search-input{background:var(--cream-input);border:1px solid var(--border);border-radius:var(--r-sm);width:100%;color:var(--charcoal);transition:border-color var(--t-fast);outline:none;padding:7px 11px;font-size:13px}.sidebar-search-input::placeholder{color:#5f5f5d99}.sidebar-search-input:focus{border-color:var(--border-active)}.sidebar-list{flex:1;padding:6px 8px;overflow-y:auto}.sidebar-group-label{text-transform:uppercase;letter-spacing:.07em;color:#5f5f5db3;-webkit-user-select:none;user-select:none;padding:10px 8px 4px;font-size:11px;font-weight:400}.sidebar-item{border-radius:var(--r-sm);cursor:pointer;transition:background var(--t-fast);align-items:center;gap:8px;padding:7px 10px;display:flex;position:relative}.sidebar-item:hover{background:var(--tint-04)}.sidebar-item.active{background:var(--tint-07)}.sidebar-item-dot{background:var(--border-active);opacity:.5;border-radius:50%;flex-shrink:0;width:5px;height:5px}.sidebar-item.active .sidebar-item-dot{background:var(--charcoal);opacity:1}.sidebar-item-title{color:var(--charcoal);white-space:nowrap;text-overflow:ellipsis;opacity:.75;flex:1;font-size:13px;line-height:1.4;overflow:hidden}.sidebar-item.active .sidebar-item-title{opacity:1;font-weight:500}.sidebar-item-delete{border-radius:var(--r-xs);width:20px;height:20px;color:var(--muted);transition:background var(--t-fast), color var(--t-fast);flex-shrink:0;justify-content:center;align-items:center;font-size:14px;display:none}.sidebar-item:hover .sidebar-item-delete{display:flex}.sidebar-item-delete:hover{color:#b93a20;background:#c8321e14}.sidebar-empty{text-align:center;color:var(--muted);padding:28px 14px;font-size:13px;line-height:1.7}.sidebar-search-result{flex-direction:column;align-items:flex-start;gap:2px}.sidebar-search-snippet{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;width:100%;font-size:11px;line-height:1.4;overflow:hidden}.sidebar-search-snippet mark{color:var(--charcoal);background:#e8431a2e;border-radius:2px;padding:0 1px}.sidebar-footer{border-top:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.sidebar-user{color:var(--charcoal);align-items:center;gap:8px;font-size:13px;display:flex}.sidebar-avatar{background:var(--charcoal);width:26px;height:26px;color:var(--charcoal-off);text-transform:uppercase;box-shadow:var(--shadow-inset);border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex}.sidebar-footer-actions{align-items:center;gap:6px;display:flex}.sidebar-theme-btn{border:1px solid var(--border);border-radius:var(--r-sm);width:28px;height:28px;color:var(--muted);transition:border-color var(--t-fast), color var(--t-fast);justify-content:center;align-items:center;display:flex}.sidebar-theme-btn:hover{border-color:var(--border-active);color:var(--charcoal)}.sidebar-logout-btn{border:1px solid var(--border);border-radius:var(--r-sm);color:var(--muted);transition:opacity var(--t-fast), border-color var(--t-fast);padding:4px 10px;font-size:12px}.sidebar-logout-btn:hover{border-color:var(--border-active);color:var(--charcoal)}.chat-window{background:var(--cream);flex-direction:column;flex:1;height:100%;display:flex;overflow:hidden}.chat-header{height:var(--header-h);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;padding:0 24px;display:flex}.chat-header-title{color:var(--charcoal);white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.1px;flex:1;font-size:14px;font-weight:500;overflow:hidden}.chat-header-badge{background:var(--tint-04);border:1px solid var(--border);border-radius:var(--r-pill);color:var(--muted);white-space:nowrap;flex-shrink:0;padding:2px 9px;font-size:11px}.header-pill{border:1px solid var(--border);border-radius:var(--r-pill);height:26px;color:var(--charcoal);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;background:0 0;align-items:center;gap:6px;padding:0 10px;font-family:inherit;font-size:12px;transition:background .12s,border-color .12s;display:inline-flex;position:relative}.header-pill:hover{background:var(--tint-07)}.header-pill.is-open{background:var(--tint-07);border-color:var(--border-active)}.header-pill:disabled,.header-pill.is-disabled{opacity:.5;cursor:default;pointer-events:none}.header-pill__chevron{width:8px;height:8px;color:var(--tint-40);flex-shrink:0;transition:transform .15s}.header-pill.is-open .header-pill__chevron{transform:rotate(180deg)}.pill-dropdown{background:var(--cream);border:1px solid var(--border);border-radius:var(--r-xl);z-index:200;min-width:180px;padding:4px 0;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 4px 16px #00000014}.pill-dropdown__row{height:32px;color:var(--charcoal);cursor:pointer;align-items:center;gap:8px;padding:0 12px;font-size:12px;transition:background 80ms;display:flex}.pill-dropdown__row:hover{background:var(--tint-04)}.pill-dropdown__check{width:12px;color:var(--charcoal);flex-shrink:0;font-size:11px}.status-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.status-dot--online{background:#4ade80}.status-dot--offline{background:#f87171}.status-dot--checking{background:#fbbf24;animation:1.2s ease-in-out infinite dot-pulse}@keyframes dot-pulse{0%,to{opacity:1}50%{opacity:.35}}.status-pill--offline{border-color:#f8717166}.pill-dropdown--status{min-width:200px;padding:12px}.pill-dropdown__status-header{color:var(--charcoal);align-items:center;gap:8px;margin-bottom:10px;font-size:13px;font-weight:500;display:flex}.pill-dropdown__divider{background:var(--border);height:1px;margin:10px 0}.pill-dropdown__meta{color:var(--tint-40);justify-content:space-between;align-items:center;margin-bottom:5px;font-size:11px;display:flex}.pill-dropdown__meta-label{color:var(--tint-40);font-size:11px}.pill-dropdown__meta-value{color:var(--charcoal);font-variant-numeric:tabular-nums}.pill-dropdown__model-name{color:var(--charcoal);margin-bottom:8px;font-size:12px}.pill-dropdown__btn{border:1px solid var(--border);border-radius:var(--r-pill);width:100%;color:var(--charcoal);cursor:pointer;text-align:center;background:0 0;margin-top:10px;padding:5px 0;font-family:inherit;font-size:11px;transition:background .1s;display:block}.pill-dropdown__btn:hover:not(:disabled){background:var(--tint-07)}.pill-dropdown__btn:disabled{opacity:.5;cursor:default}.chat-messages{flex-direction:column;flex:1;padding:32px 0 16px;display:flex;overflow-y:auto}.chat-messages-inner{flex-direction:column;gap:0;width:100%;max-width:720px;margin:0 auto;padding:0 24px;display:flex}.chat-empty{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:40px;display:flex}.chat-empty-mark{background:var(--charcoal);border-radius:var(--r-md);width:40px;height:40px;box-shadow:var(--shadow-inset);color:var(--charcoal-off);justify-content:center;align-items:center;margin-bottom:4px;font-size:18px;font-weight:600;display:flex}.chat-empty-title{color:var(--charcoal);letter-spacing:-.3px;font-size:17px;font-weight:600}.chat-empty-subtitle{color:var(--muted);text-align:center;max-width:280px;font-size:14px;line-height:1.65}.chat-no-selection{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;padding:40px;display:flex}.chat-no-selection-text{color:var(--muted);font-size:14px}.chat-no-selection-btn{background:var(--charcoal);color:var(--charcoal-off);border-radius:var(--r-sm);box-shadow:var(--shadow-inset);cursor:pointer;transition:opacity var(--t-fast);padding:8px 20px;font-size:14px}.chat-no-selection-btn:hover{opacity:.85}.message-row{border-bottom:1px solid #0000;align-items:flex-start;gap:12px;padding:14px 0;animation:.16s forwards fade-in;display:flex}.message-row+.message-row{border-top:1px solid var(--border)}.msg-avatar{text-transform:uppercase;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;margin-top:1px;font-size:12px;font-weight:600;display:flex}.user-avatar{background:var(--charcoal);color:var(--charcoal-off);box-shadow:var(--shadow-inset)}.gemma-avatar{background:var(--cream-sidebar);color:var(--charcoal);border:1px solid var(--border);font-size:11px}.message-body{flex:1;min-width:0;padding-top:5px}.message-role-label{color:var(--charcoal);letter-spacing:-.1px;margin-bottom:5px;font-size:13px;font-weight:600}.message-row.assistant .message-role-label{color:var(--muted);font-weight:400}.message-content{color:var(--tint-82);word-break:break-word;font-size:14px;line-height:1.7}.message-content p{margin:0 0 .65em}.message-content p:last-child{margin-bottom:0}.message-content h1,.message-content h2,.message-content h3,.message-content h4{letter-spacing:-.3px;color:var(--charcoal);margin:1em 0 .4em;font-weight:600}.message-content h1{font-size:1.2em}.message-content h2{font-size:1.07em}.message-content h3{font-size:1em}.message-content strong{color:var(--charcoal);font-weight:600}.message-content em{font-style:italic}.message-content ul,.message-content ol{margin:.4em 0 .65em 1.4em;padding:0}.message-content li{margin-bottom:.25em}.message-content li>ul,.message-content li>ol{margin-top:.2em;margin-bottom:0}.message-content blockquote{border-left:2px solid var(--tint-40);color:var(--muted);margin:.5em 0;padding:.4em .9em}.message-content hr{border:none;border-top:1px solid var(--border);margin:.8em 0}.answer-block{background:var(--tint-04);border:1px solid var(--border);border-left:3px solid var(--tint-40);border-radius:var(--r-md);margin:10px 0;padding:14px 40px 14px 16px;position:relative}.answer-block-content{white-space:pre-wrap;font-family:var(--font);color:var(--charcoal);font-size:.875rem;line-height:1.65}.answer-block-copy{border:1px solid var(--border);border-radius:var(--r-xs);cursor:pointer;color:var(--muted);transition:opacity var(--t-fast), color var(--t-fast);opacity:.55;background:0 0;padding:2px 7px;font-size:.78rem;position:absolute;top:8px;right:8px}.answer-block-copy:hover{opacity:1;color:var(--charcoal)}.message-content table{border-collapse:collapse;width:100%;margin:.7em 0;font-size:13px}.message-content th,.message-content td{border:1px solid var(--border);text-align:left;padding:6px 10px}.message-content th{background:var(--tint-04);color:var(--charcoal);font-weight:600}.message-content tr:nth-child(2n) td{background:var(--tint-03)}.message-content a{color:var(--charcoal)}.message-content code{font-family:var(--font-mono);background:var(--tint-04);border:1px solid var(--border);border-radius:var(--r-xs);color:var(--charcoal);padding:1px 5px;font-size:12px}.message-content pre{background:var(--code-bg);border-radius:var(--r-md);box-shadow:var(--shadow-inset);margin:10px 0;padding:14px 16px;overflow-x:auto}.message-content pre code{color:var(--code-fg);background:0 0;border:none;border-radius:0;padding:0;font-size:12.5px;line-height:1.65}@keyframes cursor-blink{0%,to{opacity:1}50%{opacity:0}}.streaming-cursor{background:var(--charcoal);vertical-align:text-bottom;border-radius:1px;width:2px;height:1em;margin-left:2px;animation:.8s ease-in-out infinite cursor-blink;display:inline-block}@keyframes dot-bounce{0%,80%,to{opacity:.3;transform:translateY(0)}40%{opacity:.8;transform:translateY(-5px)}}.thinking-dots{align-items:center;gap:4px;padding:4px 0;display:inline-flex}.thinking-dot{background:var(--charcoal);border-radius:50%;width:5px;height:5px;animation:1.2s ease-in-out infinite dot-bounce}.thinking-dot:first-child{animation-delay:0s}.thinking-dot:nth-child(2){animation-delay:.16s}.thinking-dot:nth-child(3){animation-delay:.32s}.thinking-bubble{align-items:center;gap:8px;display:flex}.thinking-label{color:var(--muted);font-size:13px;font-style:italic}.input-bar{background:var(--cream);border-top:1px solid var(--border);flex-shrink:0;padding:12px 24px 18px;position:relative}.slash-menu{background:var(--cream);border:1px solid var(--border);border-radius:var(--r-md);z-index:50;width:calc(100% - 48px);max-width:720px;max-height:320px;margin:0 auto;position:absolute;bottom:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 32px #0000002e}.slash-menu-category{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:8px 12px 4px;font-size:10px;font-weight:600}.slash-menu-item{cursor:pointer;transition:background var(--t-fast);border-radius:4px;margin:0 4px;padding:8px 12px}.slash-menu-item:hover,.slash-menu-item.active{background:var(--tint-07)}.slash-menu-item-name{color:var(--charcoal);font-size:13px;font-weight:600}.slash-menu-item-desc{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:11px;overflow:hidden}.slash-menu-unavailable{color:var(--muted);text-align:center;padding:16px 12px;font-size:13px}.template-modal-overlay{z-index:200;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.template-modal{background:var(--cream);border:1px solid var(--border);border-radius:var(--r-md);width:380px;max-width:calc(100vw - 48px);padding:24px;box-shadow:0 16px 48px #00000047}.template-modal-title{color:var(--charcoal);margin-bottom:16px;font-size:15px;font-weight:600}.template-modal-field{margin-bottom:12px}.template-modal-label{letter-spacing:.06em;color:var(--muted);margin-bottom:4px;font-size:11px;font-weight:600;display:block}.template-modal-input{background:var(--cream);border:1px solid var(--border);border-radius:var(--r-sm);width:100%;color:var(--charcoal);box-sizing:border-box;transition:border-color var(--t-fast);padding:8px 10px;font-size:13px}.template-modal-input:focus{border-color:var(--border-active);outline:none}.template-modal-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.template-modal-cancel{border:1px solid var(--border);border-radius:var(--r-sm);color:var(--charcoal);cursor:pointer;transition:background var(--t-fast);background:0 0;padding:7px 14px;font-size:13px}.template-modal-cancel:hover{background:var(--tint-04)}.template-modal-use{background:var(--border-active);border-radius:var(--r-sm);color:#fff;cursor:pointer;transition:opacity var(--t-fast);border:none;padding:7px 14px;font-size:13px;font-weight:600}.template-modal-use:hover{opacity:.88}.input-bar-inner{background:var(--cream-input);border:1px solid var(--border);border-radius:var(--r-lg);width:100%;max-width:720px;transition:border-color var(--t-fast), box-shadow var(--t-fast);align-items:center;gap:10px;margin:0 auto;padding:8px 10px;display:flex}.input-bar-inner:focus-within{border-color:var(--border-active);box-shadow:var(--shadow-focus)}.input-bar-textarea{color:var(--charcoal);resize:none;background:0 0;border:none;outline:none;flex:1;min-height:22px;max-height:160px;padding:2px 0;font-size:14px;line-height:1.6;overflow-y:auto}.input-bar-textarea::placeholder{color:#5f5f5d8c}.input-bar-textarea:disabled{cursor:not-allowed;opacity:.45}.input-bar-send{background:var(--charcoal);width:34px;height:34px;color:var(--charcoal-off);box-shadow:var(--shadow-inset);transition:opacity var(--t-fast), transform var(--t-fast);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.input-bar-send:hover:not(:disabled){opacity:.85;transform:scale(1.04)}.input-bar-send:active:not(:disabled){opacity:.8;transform:scale(.97)}.input-bar-send:disabled{opacity:.3;cursor:not-allowed}.input-bar-send.loading{opacity:.55}.input-bar-attach{cursor:pointer;width:32px;height:32px;color:var(--charcoal);opacity:.4;transition:opacity var(--t-fast);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.input-bar-attach:hover:not(:disabled){opacity:.75}.input-bar-attach:disabled{opacity:.2;cursor:not-allowed}.attachment-chip-row{width:100%;max-width:720px;margin:0 auto 8px}.attachment-chip{border:1px solid var(--border);color:var(--charcoal);background:#5a6e5a1a;border-radius:20px;align-items:center;gap:6px;max-width:100%;padding:4px 8px 4px 12px;font-size:12px;display:inline-flex}.attachment-chip-name{text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.attachment-chip-remove{cursor:pointer;color:var(--charcoal);opacity:.5;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:16px;line-height:1}.attachment-chip-remove:hover{opacity:1}.attachment-chip--error{color:#b22828;background:#b4282814;border-color:#b428284d}.input-bar-hint{color:#5f5f5d8c;text-align:center;width:100%;max-width:720px;margin:5px auto 0;font-size:11px}.kb-mode-row{align-items:center;width:100%;max-width:720px;margin:0 auto 6px;display:flex}.kb-mode-toggle{background:var(--tint-04);border-radius:999px;gap:2px;padding:3px;display:inline-flex}.kb-mode-btn{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;padding:4px 12px;font-size:12px;font-weight:500;line-height:1.4;transition:background .15s,color .15s,box-shadow .15s}.kb-mode-btn.active{background:var(--tint-82);color:var(--cream);box-shadow:0 1px 3px #0000001f}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.admin-page{background:var(--cream);flex-direction:column;flex:1;gap:24px;padding:40px;display:flex;overflow-y:auto}.admin-header{justify-content:space-between;align-items:center;display:flex}.admin-title{color:var(--charcoal);font-size:20px;font-weight:600}.admin-close-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:6px 0;font-size:13px}.admin-close-btn:hover{color:var(--charcoal)}.admin-error{border-radius:var(--r-std);color:#c00;background:#fee;border:1px solid #fcc;padding:10px 14px;font-size:13px}.admin-card{background:var(--cream);border:1px solid var(--border);border-radius:var(--r-md);flex-direction:column;gap:14px;padding:24px;display:flex}.admin-section-title{color:var(--charcoal);font-size:14px;font-weight:600}.admin-form{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.admin-input,.admin-select{border:1px solid var(--border);border-radius:var(--r-std);background:var(--cream);color:var(--charcoal);outline:none;padding:7px 10px;font-size:13px}.admin-input:focus,.admin-select:focus{border-color:#1c1c1c66}.admin-hint{color:var(--muted);font-size:12px}.admin-btn-primary{background:var(--charcoal);color:var(--charcoal-off);border-radius:var(--r-std);cursor:pointer;box-shadow:var(--shadow-inset);border:none;padding:7px 16px;font-size:13px}.admin-btn-primary:disabled{opacity:.6;cursor:default}.admin-table{border-collapse:collapse;width:100%;font-size:13px}.admin-table th{text-align:left;border-bottom:1px solid var(--border);color:var(--muted);padding:8px 10px;font-weight:500}.admin-table td{border-bottom:1px solid var(--border);color:var(--charcoal);padding:10px}.admin-row-inactive td{opacity:.5}.admin-role-badge{border-radius:var(--r-pill);padding:2px 8px;font-size:11px;font-weight:500}.admin-role-admin{background:var(--charcoal);color:var(--charcoal-off)}.admin-role-user{background:var(--tint-04);color:var(--muted);border:1px solid var(--border)}.admin-actions{gap:6px;display:flex}.admin-btn-ghost{background:var(--tint-04);border:1px solid var(--border);border-radius:var(--r-std);cursor:pointer;color:var(--charcoal);padding:4px 10px;font-size:12px}.admin-btn-ghost:hover{border-color:#1c1c1c66}.admin-tabs{flex-wrap:wrap;gap:8px;margin-bottom:24px;display:flex}.admin-btn-danger{border-radius:var(--r-std);cursor:pointer;color:#c00;background:0 0;border:1px solid #fcc;padding:4px 10px;font-size:12px}.kb-source-label,.kb-fallback-label{opacity:.65;margin-top:6px;font-size:11px}.kb-source-label{color:var(--accent,#6366f1)}.kb-fallback-label{color:var(--warning,#f59e0b)}.msg-copy-btn{cursor:pointer;opacity:0;color:var(--muted,#9ca3af);background:0 0;border:none;border-radius:4px;align-self:flex-start;margin-top:4px;padding:2px 4px;font-size:14px;transition:opacity .15s,color .15s}.message-body:hover .msg-copy-btn{opacity:1}.msg-copy-btn:hover{color:var(--charcoal,#374151)}.chat-suggestions{flex-wrap:wrap;justify-content:center;gap:8px;max-width:480px;margin-top:20px;display:flex}.chat-suggestion-pill{background:var(--surface,#f9fafb);border:1px solid var(--border,#e5e7eb);color:var(--charcoal,#374151);cursor:pointer;text-align:left;border-radius:20px;padding:7px 14px;font-size:13px;transition:background .15s,border-color .15s}.chat-suggestion-pill:hover{background:var(--accent-light,#eef2ff);border-color:var(--accent,#6366f1);color:var(--accent,#6366f1)}[data-theme=dark] .chat-suggestion-pill{background:var(--tint-07);color:var(--charcoal)}[data-theme=dark] .chat-suggestion-pill:hover{background:var(--tint-07);border-color:var(--accent,#818cf8);color:var(--accent,#818cf8)}.admin-btn-danger:hover{background:#fee}.confirm-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-dialog{background:var(--bg,#fff);border:1px solid var(--border,#e5e7eb);border-radius:10px;flex-direction:column;gap:20px;width:90%;min-width:300px;max-width:440px;padding:24px 28px;display:flex;box-shadow:0 8px 32px #0000002e}.confirm-message{color:var(--charcoal,#1c1c1c);margin:0;font-size:.95rem;line-height:1.5}.confirm-actions{justify-content:flex-end;gap:10px;display:flex}[data-theme=dark] .confirm-dialog{background:#1e1e2e;border-color:#ffffff1a}[data-theme=dark] .confirm-message{color:#e2e8f0}.display-name-modal-overlay{z-index:1000;background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.display-name-modal{background:var(--cream);border:1px solid var(--border);border-radius:var(--r-xl);flex-direction:column;gap:14px;width:380px;max-width:calc(100vw - 48px);padding:36px;display:flex;box-shadow:0 8px 32px #0000001a}.display-name-modal-title{color:var(--charcoal);letter-spacing:-.4px;margin:0;font-size:18px;font-weight:600}.display-name-modal-sub{color:var(--muted);margin:0;font-size:13px;line-height:1.55}.display-name-modal-input{background:var(--cream-input);border:1px solid var(--border);border-radius:var(--r-sm);width:100%;color:var(--charcoal);transition:border-color var(--t-fast), box-shadow var(--t-fast);box-sizing:border-box;outline:none;padding:9px 13px;font-size:14px}.display-name-modal-input::placeholder{color:#5f5f5d99}.display-name-modal-input:focus{border-color:var(--border-active);box-shadow:var(--shadow-focus)}.display-name-modal-error{color:#b93a20;margin:0;font-size:12px}.display-name-modal-actions{gap:8px;margin-top:4px;display:flex}.display-name-modal-save{background:var(--charcoal);color:var(--charcoal-off);border-radius:var(--r-sm);cursor:pointer;box-shadow:var(--shadow-inset);transition:opacity var(--t-fast);border:none;flex:1;padding:10px 0;font-size:14px;font-weight:400}.display-name-modal-save:disabled{opacity:.45;cursor:not-allowed}.display-name-modal-save:hover:not(:disabled){opacity:.88}.display-name-modal-skip{color:var(--muted);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;transition:border-color var(--t-fast), color var(--t-fast);background:0 0;flex:1;padding:10px 0;font-size:13px}.display-name-modal-skip:hover:not(:disabled){border-color:var(--border-active);color:var(--charcoal)}.display-name-modal-skip:focus-visible{box-shadow:var(--shadow-focus)}.sidebar-name-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.impact-tab{flex-direction:column;gap:16px;display:flex}.impact-hero{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.impact-hero-card{background:var(--tint-04);border:1px solid var(--border);border-radius:var(--r-lg);text-align:center;padding:20px}.impact-hero-value{letter-spacing:-1px;font-size:40px;font-weight:700;line-height:1}.impact-hero-label{color:var(--muted);margin-top:6px;font-size:12px}.impact-section h3{margin:0 0 14px;font-size:14px}.impact-sparkline{align-items:flex-end;gap:3px;height:80px;display:flex}.impact-spark-col{flex:1;align-items:flex-end;height:100%;display:flex}.impact-spark-bar{background:var(--border-active);border-radius:2px 2px 0 0;width:100%;min-height:4px;transition:background .15s}.impact-spark-col:hover .impact-spark-bar{background:var(--accent,#6366f1)}.impact-bottom{grid-template-columns:1fr 1fr;gap:16px;display:grid}.impact-doc-list,.impact-gap-list{flex-direction:column;gap:10px;display:flex}.impact-doc-row{align-items:center;gap:10px;font-size:13px;display:flex}.impact-doc-rank{color:var(--muted);flex-shrink:0;width:24px;font-weight:700}.impact-doc-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.impact-doc-count{color:var(--muted);flex-shrink:0;font-size:12px}.impact-gap-row{border-bottom:1px solid var(--border);flex-direction:column;gap:2px;padding-bottom:8px;font-size:13px;display:flex}.impact-gap-row:last-child{border-bottom:none;padding-bottom:0}.impact-gap-score{color:var(--muted);font-size:11px}@media (width>=769px){.hamburger-btn,.sidebar-overlay{display:none!important}}@media (width<=768px){.sidebar{z-index:300;width:min(280px,85vw);box-shadow:none;will-change:transform;transition:transform .28s cubic-bezier(.4,0,.2,1);position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.sidebar-open{transform:translate(0);box-shadow:8px 0 32px #00000038}.sidebar-overlay{z-index:299;-webkit-backdrop-filter:blur(2px);background:#00000073;animation:.2s fadeOverlay;display:block;position:fixed;inset:0}@keyframes fadeOverlay{0%{opacity:0}to{opacity:1}}.hamburger-btn{border-radius:var(--r-sm);background:var(--tint-04);border:1px solid var(--border);width:36px;min-width:36px;height:36px;color:var(--charcoal);transition:background var(--t-fast);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;display:flex}.hamburger-btn:hover{background:var(--tint-07)}.chat-window{width:100%}.chat-header{gap:8px;min-height:52px;padding:10px 12px}.chat-header-center{flex-wrap:wrap;gap:6px}.chat-header-right{gap:6px}.chat-messages{padding:10px 10px 0}.message-bubble{max-width:88%}.message-bubble-user{max-width:80%}.input-bar{padding:8px 10px 12px}.input-bar-hint{display:none}.input-bar-textarea{font-size:15px}.suggested-questions{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;gap:6px;padding:0 10px 8px;overflow-x:auto}.suggested-questions::-webkit-scrollbar{display:none}.suggested-pill{white-space:nowrap;flex-shrink:0}.admin-page{height:100%;padding:0;overflow-y:auto}.admin-header{z-index:10;background:var(--cream);border-bottom:1px solid var(--border);flex-shrink:0;padding:14px 16px;position:sticky;top:0}[data-theme=dark] .admin-header{background:var(--cream)}.admin-title{font-size:18px}.admin-close-btn{padding:6px 10px;font-size:13px}.admin-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-shrink:0;gap:6px;padding:12px 16px 0;display:flex;overflow-x:auto}.admin-tabs::-webkit-scrollbar{display:none}.admin-tabs .admin-btn-primary,.admin-tabs .admin-btn-ghost{white-space:nowrap;flex-shrink:0;padding:7px 14px;font-size:13px}.admin-card{border-radius:var(--r-lg);margin:12px 12px 0;padding:14px}.admin-card:last-child{margin-bottom:16px}.admin-form{flex-direction:column}.admin-form .admin-input,.admin-form .admin-select{width:100%}.admin-form .admin-btn-primary{align-self:flex-start}.admin-input,.admin-select{min-height:42px;font-size:15px}.admin-table{width:100%;display:block}.admin-table thead{display:none}.admin-table tbody{flex-direction:column;gap:8px;display:flex}.admin-table tr{border:1px solid var(--border);border-radius:var(--r-md);background:var(--tint-03);padding:12px;display:block;position:relative}.admin-table tr.admin-row-inactive{opacity:.65}.admin-table td{border:none;padding:2px 0;font-size:13px;line-height:1.5;display:block}.admin-table td[data-label]:not([data-label=""]):before{content:attr(data-label) ": ";text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:11px;font-weight:600;display:inline}.admin-table .admin-actions{border-top:1px solid var(--border);flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:10px;display:flex!important}.admin-table .admin-actions .admin-btn-ghost,.admin-table .admin-actions .admin-btn-danger{text-align:center;flex:1;min-width:0;padding:8px 10px;font-size:13px}.impact-hero{grid-template-columns:1fr 1fr;gap:8px}.impact-hero-value{font-size:28px}.impact-sparkline{overflow:hidden}.impact-bottom{grid-template-columns:1fr}.login-screen{align-items:stretch;padding:0}.login-card{min-height:100dvh;box-shadow:none;border:none;border-radius:0;flex-direction:column;justify-content:center;max-width:100%;margin:0;padding:40px 24px 32px;display:flex}.login-logo-img{max-width:180px}.confirm-dialog{width:calc(100% - 32px);max-width:calc(100% - 32px);margin:16px}.display-name-modal-content{width:calc(100% - 40px);max-width:calc(100% - 40px);margin:20px}}@media (width<=420px){.impact-hero{grid-template-columns:1fr}.impact-hero-value{font-size:32px}.admin-tabs .admin-btn-primary,.admin-tabs .admin-btn-ghost{padding:6px 10px;font-size:12px}.chat-header{padding:8px 10px}.message-bubble{max-width:92%}.admin-card{margin:8px 8px 0;padding:12px}}.changelog-timeline{max-width:640px;padding-top:8px}.changelog-entry{gap:20px;margin-bottom:36px;display:flex}.changelog-rail{flex-direction:column;flex-shrink:0;align-items:center;width:14px;padding-top:4px;display:flex}.changelog-dot{background:var(--charcoal);border-radius:50%;flex-shrink:0;width:10px;height:10px}.changelog-line{background:var(--border);flex:1;width:2px;margin-top:6px}.changelog-body{flex:1;padding-bottom:8px}.changelog-meta{align-items:center;gap:10px;margin-bottom:6px;display:flex}.changelog-version{background:var(--charcoal);color:var(--cream);letter-spacing:.04em;border-radius:var(--r-pill);padding:2px 8px;font-size:11px;font-weight:700}.changelog-date{color:var(--muted);font-size:12px}.changelog-title{color:var(--charcoal);border-bottom:1px solid var(--border);margin-bottom:8px;padding-bottom:8px;font-size:15px;font-weight:600}.changelog-bullets{margin:0;padding:0;list-style:none}.changelog-bullets li{color:var(--muted);padding:3px 0 3px 14px;font-size:13px;position:relative}.changelog-bullets li:before{content:"·";color:var(--charcoal);font-weight:700;position:absolute;left:0}.changelog-code-hint{font-family:var(--font-mono);background:var(--code-bg);color:var(--code-fg);border-radius:var(--r-md);white-space:pre;margin-top:10px;padding:12px 16px;font-size:12px;overflow-x:auto}.share-page{background:var(--bg);justify-content:center;align-items:flex-start;min-height:100vh;padding:48px 16px 80px;display:flex}.share-card{flex-direction:column;gap:0;width:100%;max-width:720px;display:flex}.share-header{margin-bottom:32px}.share-title{color:var(--text);margin:0 0 6px;font-size:22px;font-weight:600}.share-meta{color:var(--muted);margin:0;font-size:13px}.share-messages{flex-direction:column;gap:16px;margin-bottom:40px;display:flex}.share-msg{display:flex}.share-msg--user{justify-content:flex-end}.share-msg--assistant{justify-content:flex-start}.share-msg-bubble{background:var(--surface-2,#ffffff0f);border:1px solid var(--border);border-radius:12px;max-width:80%;padding:12px 16px}.share-msg--user .share-msg-bubble{background:var(--border-active);color:#fff;border-color:#0000}.share-msg-content{white-space:pre-wrap;margin:0;font-size:14px;line-height:1.6}.share-msg-source{opacity:.7;margin-top:8px;font-size:11px;display:inline-block}.share-footer{border-top:1px solid var(--border);flex-direction:column;align-items:center;gap:10px;padding-top:24px;display:flex}.share-fork-btn{background:var(--border-active);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:10px 28px;font-size:15px;font-weight:500;transition:opacity .15s}.share-fork-btn:disabled{opacity:.6;cursor:not-allowed}.share-footer-hint{color:var(--muted);text-align:center;max-width:420px;margin:0;font-size:12px}.share-error,.share-loading{color:var(--muted);text-align:center;padding:48px;font-size:16px}.share-toast{background:var(--text);color:var(--bg);z-index:1000;border-radius:8px;padding:10px 20px;font-size:13px;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.chat-share-btn{border:1px solid var(--border);color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;padding:3px 10px;font-size:12px;transition:color .15s,border-color .15s}.chat-share-btn:hover{color:var(--text);border-color:var(--border-active)}.chat-share-toast{background:var(--text);color:var(--bg);z-index:1000;pointer-events:none;border-radius:8px;padding:8px 18px;font-size:13px;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}
