:root{--color-bg:#0b1014;--color-sidebar-bg:#10171d;--color-surface:#151e26;--color-surface-elevated:#1a242d;--color-surface-hover:#212d38;--color-surface-active:#26323d;--color-border:#ffffff14;--color-border-strong:#ffffff2e;--color-overlay:#04070a99;--color-overlay-faint:#ffffff0a;--color-overlay-subtle:#00000040;--color-overlay-strong:#00000052;--color-primary:#00d67a;--color-primary-hover:#1af08c;--color-primary-active:#00b865;--color-primary-glow:#00d67a2e;--color-primary-glow-strong:#00d67a4d;--color-on-primary:#0b1014;--color-accent-blue:#5aa7ff;--color-success:var(--color-primary);--color-warning:#f2b134;--color-error:#f87171;--color-error-surface:#f871711f;--color-error-border:#f8717152;--color-text-primary:#f5f8fa;--color-text-secondary:#a7b2bf;--color-text-muted:#6c7885;--color-text-disabled:#47525d;--color-text-accent:var(--color-accent-blue);--color-text-accent-muted:#5aa7ff66;--color-bubble-user:#182028;--color-bubble-assistant:var(--color-surface-elevated);--color-avatar-user:#3a434c;--color-avatar-assistant:var(--color-primary);--color-syntax-string:#d9b36c;--color-syntax-number:#e0935c;--color-syntax-function:var(--color-accent-blue);--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px;--space-2xl:32px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:20px;--radius-full:9999px;--shadow-card:0 4px 24px #0006;--shadow-popup:0 8px 32px #00000080;--shadow-glow:0 0 32px #00d67a38;--shadow-focus:0 0 0 3px #00d67a59;--transition-fast:.1s ease;--transition-normal:.18s ease-out;--transition-slow:.25s ease;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:"SF Mono", "Fira Code", "Fira Mono", monospace;--font-size-xs:11px;--font-size-sm:12px;--font-size-base:13px;--font-size-md:14px;--font-size-lg:16px;--font-size-xl:18px;--font-size-2xl:24px;--font-size-3xl:30px;--font-size-wordmark:19.5px;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.3;--line-height-normal:1.5;--line-height-relaxed:1.55;--sidebar-width:280px;--header-height:76px}*,:before,:after{box-sizing:border-box}html,body{height:100dvh;margin:0;padding:0;overflow:hidden}body{font-family:var(--font-sans);font-size:var(--font-size-md);line-height:var(--line-height-normal);color:var(--color-text-primary);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100%;display:flex}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);margin:0}p{margin:0}button{cursor:pointer;font-family:inherit}textarea{font-family:inherit}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.app-layout{width:100%;height:100%;display:flex;overflow-x:hidden}.logo{align-items:center;gap:var(--space-sm);display:inline-flex}.logo-mark{flex-shrink:0}.logo-wordmark{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);letter-spacing:.06em}.logo--lg{gap:var(--space-md)}.logo--lg .logo-wordmark{font-size:var(--font-size-2xl)}.sidebar-header .logo-wordmark{font-size:var(--font-size-wordmark)}.sidebar{width:min(var(--sidebar-width), 85vw);background:var(--color-sidebar-bg);border-right:1px solid var(--color-border);border-radius:0 var(--radius-lg) var(--radius-lg) 0;z-index:50;opacity:0;transition:transform var(--transition-normal), opacity var(--transition-normal), box-shadow var(--transition-normal);padding-top:env(safe-area-inset-top);box-shadow:var(--shadow-popup);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden;transform:translate(-100%)}.sidebar.open{opacity:1;transform:translate(0)}.sidebar-backdrop{background:var(--color-overlay);-webkit-backdrop-filter:blur(2px);z-index:40;animation:backdropFadeIn var(--transition-normal);position:fixed;inset:0}@keyframes backdropFadeIn{0%{opacity:0}to{opacity:1}}.sidebar-header{justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-xl) var(--space-lg) var(--space-lg);border-bottom:1px solid var(--color-border);display:flex}.sidebar-project-row{padding:var(--space-sm) var(--space-lg);border-bottom:1px solid var(--color-border)}.sidebar-close-btn{border-radius:var(--radius-sm);width:32px;min-width:32px;height:32px;color:var(--color-text-secondary);font-size:var(--font-size-lg);transition:background var(--transition-normal), color var(--transition-normal);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-close-btn:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.sidebar-nav{padding:var(--space-md) var(--space-sm);gap:var(--space-xs);border-bottom:1px solid var(--color-border);flex-direction:column;display:flex}.nav-item{align-items:center;gap:var(--space-sm);width:100%;padding:10px var(--space-md);text-align:left;border-radius:var(--radius-md);color:var(--color-text-secondary);font-family:inherit;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--transition-normal), color var(--transition-normal), border-color var(--transition-normal);-webkit-user-select:none;user-select:none;background:0 0;border:none;border-left:3px solid #0000;display:flex}.nav-item:hover{background:var(--color-surface-hover);color:var(--color-text-primary);border-left-color:var(--color-primary)}.nav-item.active{background:var(--color-primary-glow);color:var(--color-text-primary);font-weight:var(--font-weight-semibold);border-left-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary-glow)}.nav-item-icon{width:20px;font-size:var(--font-size-lg);flex-shrink:0;justify-content:center;align-items:center;line-height:1;display:flex}.nav-item-badge{border-radius:var(--radius-full);background:var(--color-primary);min-width:18px;height:18px;color:var(--color-on-primary);font-size:11px;font-weight:var(--font-weight-semibold);flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;padding:0 5px;display:inline-flex}.new-chat-btn{justify-content:center;align-items:center;gap:var(--space-xs);width:100%;padding:10px var(--space-lg);margin:var(--space-lg) 0 var(--space-sm);border:1px solid var(--color-primary-glow);border-radius:var(--radius-full);background:var(--color-surface-elevated);color:var(--color-text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);transition:background var(--transition-normal), border-color var(--transition-normal), box-shadow var(--transition-normal), transform var(--transition-fast);display:flex}.new-chat-icon{font-size:var(--font-size-lg);color:var(--color-primary);line-height:1;font-weight:var(--font-weight-bold)}.new-chat-btn:hover{background:var(--color-surface-hover);border-color:var(--color-primary);box-shadow:0 4px 16px var(--color-primary-glow-strong);transform:translateY(-1px)}.new-chat-btn:active{background:var(--color-surface-active);box-shadow:none;transform:scale(.98)}.conversation-list-label{padding:var(--space-md) var(--space-md) var(--space-xs);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em}.conversation-list{padding:0 var(--space-sm) var(--space-sm);gap:var(--space-xs);flex-direction:column;flex:1;display:flex;overflow-y:auto}.conversation-item{align-items:center;gap:var(--space-xs);padding:10px var(--space-md);border-radius:var(--radius-md);cursor:pointer;color:var(--color-text-secondary);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);transition:background var(--transition-normal), color var(--transition-normal), border-color var(--transition-normal), box-shadow var(--transition-normal);border-left:3px solid #0000;display:flex}.conversation-item:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.conversation-item.active{background:var(--color-primary-glow);color:var(--color-text-primary);font-weight:var(--font-weight-semibold);border-left-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary-glow)}.conversation-item.pending{opacity:.6;pointer-events:none}.conversation-item-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.conversation-item-actions{gap:var(--space-xs);flex-shrink:0;display:flex}.conversation-action-btn{border-radius:var(--radius-sm);width:26px;height:26px;font-size:var(--font-size-sm);cursor:pointer;transition:background var(--transition-normal);background:0 0;border:none;justify-content:center;align-items:center;padding:0;line-height:1;display:flex}.conversation-action-btn:hover{background:var(--color-surface-active)}.conversation-action-btn:disabled{cursor:default;opacity:.5}.conversation-action-btn.active{background:var(--color-primary-glow)}.conversation-action-btn.active:hover{background:var(--color-primary-glow-strong)}.icon-spinner{border:2px solid var(--color-border-strong);border-top-color:var(--color-primary);border-radius:var(--radius-full);width:12px;height:12px;animation:.6s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.conversation-rename-input{background:var(--color-bg);min-width:0;color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);transition:border-color var(--transition-normal), box-shadow var(--transition-normal);flex:1;padding:2px 6px;font-family:inherit}.conversation-rename-input:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus);outline:none}.sidebar-error{margin:0 var(--space-sm) var(--space-sm);padding:var(--space-sm) 10px;border-radius:var(--radius-sm);background:var(--color-error-surface);color:var(--color-error);font-size:var(--font-size-sm)}.sidebar-note{padding:var(--space-sm) var(--space-md);color:var(--color-text-muted);font-size:var(--font-size-sm)}.sidebar-footer{padding:var(--space-md);border-top:1px solid var(--color-border)}.logout-btn{width:100%;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);text-align:left;cursor:pointer;transition:background var(--transition-normal), color var(--transition-normal);background:0 0;border:none}.logout-btn:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.logout-btn:active{background:var(--color-surface-active)}.sidebar-close-btn:focus-visible,.new-chat-btn:focus-visible,.nav-item:focus-visible,.conversation-action-btn:focus-visible,.logout-btn:focus-visible,.menu-btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.chat-area{background:var(--color-bg);flex-direction:column;flex:1;min-width:0;display:flex}.mobile-topbar{padding:calc(10px + env(safe-area-inset-top)) var(--space-lg) 10px;border-bottom:1px solid var(--color-border);flex-shrink:0;align-items:center;gap:10px;display:flex}.mobile-topbar-title{font-size:15px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.menu-btn{border-radius:var(--radius-sm);width:40px;min-width:40px;height:40px;color:var(--color-text-primary);transition:background var(--transition-normal);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:20px;display:flex}.menu-btn:hover{background:var(--color-surface-hover)}.chat-header{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-border);flex-shrink:0}.chat-header-title-row{align-items:center;gap:var(--space-sm);min-width:0;display:flex}.chat-header-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);overflow:hidden}.chat-header-badge{padding:2px var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-overlay-subtle);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.04em;cursor:default;flex-shrink:0}.chat-header-subtitle{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:2px}.messages-container{padding:var(--space-md) var(--space-md) var(--space-sm);gap:var(--space-md);flex-direction:column;flex:1;display:flex;overflow:hidden auto}.message-row{gap:var(--space-md);max-width:90%;animation:.2s fadeIn;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.message-row.user{flex-direction:row-reverse;align-self:flex-end}.message-row.silas{align-self:flex-start}.message-content{min-width:0}.message-avatar{border-radius:var(--radius-full);width:34px;min-width:34px;height:34px;font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-on-primary);margin-top:var(--space-xs);flex-shrink:0;justify-content:center;align-items:center;display:flex}.message-avatar.user{background:var(--color-avatar-user)}.message-avatar.silas{background:var(--color-avatar-assistant)}.message-bubble{padding:var(--space-lg);border-radius:var(--radius-xl);font-size:var(--font-size-md);line-height:var(--line-height-relaxed);color:var(--color-text-primary);word-wrap:break-word;overflow-wrap:break-word}.message-row.user .message-bubble{background:var(--color-bubble-user);border:1px solid var(--color-border);border-bottom-right-radius:var(--radius-md);white-space:pre-wrap}.message-row.silas .message-bubble{background:var(--color-bubble-assistant);border:1px solid var(--color-border);box-shadow:var(--shadow-card);border-bottom-left-radius:var(--radius-md)}.markdown-content{min-width:0}.markdown-content>:first-child{margin-top:0}.markdown-content>:last-child{margin-bottom:0}.markdown-content p,.markdown-content ul,.markdown-content ol,.markdown-content blockquote,.markdown-content table,.markdown-content .code-block{margin:0 0 var(--space-md)}.markdown-content p,.markdown-content li,.markdown-content blockquote{overflow-wrap:break-word;word-break:break-word}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4,.markdown-content h5,.markdown-content h6{margin:var(--space-xl) 0 var(--space-sm);line-height:var(--line-height-tight)}.markdown-content h1{font-size:1.35em}.markdown-content h2{font-size:1.2em}.markdown-content h3{font-size:1.1em}.markdown-content h4,.markdown-content h5,.markdown-content h6{font-size:1em}.markdown-content ul,.markdown-content ol{padding-left:1.4em}.markdown-content li{margin-bottom:var(--space-xs)}.markdown-content li>p{margin:0 0 4px}.markdown-content ul.contains-task-list{padding-left:.2em;list-style:none}.markdown-content li.task-list-item{margin-left:0;list-style:none}.markdown-content li.task-list-item input[type=checkbox]{margin-right:6px}.markdown-content blockquote{padding:var(--space-sm) var(--space-md);border-left:3px solid var(--color-accent-blue);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--color-overlay-faint);color:var(--color-text-secondary);font-style:italic}.markdown-content hr{border:none;border-top:1px solid var(--color-border);margin:14px 0}.markdown-content a{color:var(--color-text-accent);font-weight:var(--font-weight-medium);text-decoration:underline;-webkit-text-decoration-color:var(--color-text-accent-muted);text-decoration-color:var(--color-text-accent-muted);transition:text-decoration-color var(--transition-normal)}.markdown-content a:hover{-webkit-text-decoration-color:var(--color-text-accent);text-decoration-color:var(--color-text-accent)}.markdown-content code{font-family:var(--font-mono);background:var(--color-overlay-subtle);border-radius:4px;padding:2px 5px;font-size:.9em}.markdown-content .code-block{position:relative}.markdown-content pre{background:var(--color-overlay-strong);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);margin:0;overflow-x:auto}.markdown-content pre code{font-size:.85em;line-height:var(--line-height-normal);white-space:pre;color:var(--color-text-primary);background:0 0;border-radius:0;padding:0}.markdown-content .hljs-comment,.markdown-content .hljs-quote{color:var(--color-text-muted);font-style:italic}.markdown-content .hljs-keyword,.markdown-content .hljs-selector-tag,.markdown-content .hljs-tag,.markdown-content .hljs-doctag,.markdown-content .hljs-meta .hljs-keyword,.markdown-content .hljs-subst{color:var(--color-text-accent)}.markdown-content .hljs-string,.markdown-content .hljs-attr,.markdown-content .hljs-regexp,.markdown-content .hljs-symbol,.markdown-content .hljs-template-tag,.markdown-content .hljs-template-variable,.markdown-content .hljs-addition{color:var(--color-syntax-string)}.markdown-content .hljs-number,.markdown-content .hljs-literal,.markdown-content .hljs-deletion{color:var(--color-syntax-number)}.markdown-content .hljs-title,.markdown-content .hljs-title.function_,.markdown-content .hljs-title.class_,.markdown-content .hljs-built_in,.markdown-content .hljs-name{color:var(--color-syntax-function)}.markdown-content .hljs-variable,.markdown-content .hljs-params,.markdown-content .hljs-attribute{color:var(--color-text-primary)}.markdown-content .hljs-punctuation,.markdown-content .hljs-operator,.markdown-content .hljs-meta{color:var(--color-text-secondary)}.markdown-content .hljs-emphasis{font-style:italic}.markdown-content .hljs-strong{font-weight:var(--font-weight-bold)}.markdown-content table{border-collapse:collapse;max-width:100%;font-size:.95em;display:block;overflow-x:auto}.markdown-content th,.markdown-content td{border:1px solid var(--color-border);padding:var(--space-sm) var(--space-md);text-align:left;white-space:nowrap}.markdown-content th{background:var(--color-overlay-faint);font-weight:var(--font-weight-semibold)}.message-meta{align-items:center;gap:var(--space-xs);margin-top:4px;padding:0 2px;display:flex}.message-row.user .message-meta{justify-content:flex-end}.message-timestamp{font-size:var(--font-size-xs);color:var(--color-text-muted);opacity:.75}.message-edited-indicator{font-size:var(--font-size-xs);color:var(--color-text-muted);opacity:.75;font-style:italic}.message-edit-trigger{border-radius:var(--radius-sm);width:22px;height:22px;font-size:var(--font-size-xs);cursor:pointer;opacity:.7;transition:background var(--transition-normal), opacity var(--transition-normal);background:0 0;border:none;justify-content:center;align-items:center;padding:0;line-height:1;display:flex}.message-edit-trigger:hover{background:var(--color-surface-active);opacity:1}.message-edit-textarea{background:var(--color-bg);width:100%;min-height:60px;color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:inherit;font-size:var(--font-size-md);line-height:var(--line-height-relaxed);padding:var(--space-sm);resize:vertical;transition:border-color var(--transition-normal), box-shadow var(--transition-normal)}.message-edit-textarea:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus);outline:none}.message-edit-textarea:disabled{opacity:.6;cursor:not-allowed}.message-edit-actions{justify-content:flex-end;align-items:center;gap:var(--space-sm);margin-top:var(--space-sm);display:flex}.message-edit-error{font-size:var(--font-size-xs);color:var(--color-error);margin-right:auto}.message-edit-btn{padding:4px var(--space-md);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--transition-normal), opacity var(--transition-normal);border:none}.message-edit-btn:disabled{cursor:default;opacity:.6}.message-edit-btn.cancel{color:var(--color-text-secondary);background:0 0}.message-edit-btn.cancel:hover{background:var(--color-surface-hover)}.message-edit-btn.save{background:var(--color-primary);color:var(--color-on-primary)}.message-edit-btn.save:hover{background:var(--color-primary-hover)}.message-regenerate-row{margin-top:var(--space-sm);display:flex}.message-row.user .message-regenerate-row{justify-content:flex-end}.message-regenerate-btn{align-items:center;gap:var(--space-xs);padding:4px var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface-elevated);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--transition-normal), border-color var(--transition-normal), color var(--transition-normal), opacity var(--transition-normal);display:flex}.message-regenerate-btn:hover{background:var(--color-surface-hover);border-color:var(--color-primary);color:var(--color-text-primary)}.message-regenerate-btn:disabled{cursor:default;opacity:.5}.message-regenerate-icon{font-size:var(--font-size-sm);line-height:1}.message-sources-row{gap:var(--space-xs);margin-top:var(--space-sm);flex-wrap:wrap;display:flex}.message-source-chip{max-width:220px;padding:3px var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-overlay-faint);color:var(--color-text-muted);font-size:var(--font-size-xs);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;display:inline-flex;overflow:hidden}.message-source-index{border-radius:var(--radius-full);background:var(--color-overlay-subtle);min-width:16px;height:16px;color:var(--color-text-secondary);font-size:10px;font-weight:var(--font-weight-semibold);flex-shrink:0;justify-content:center;align-items:center;padding:0 4px;display:inline-flex}.message-source-type-icon{flex-shrink:0;font-size:10px}.message-tool-status{align-items:center;gap:var(--space-sm);color:var(--color-text-secondary);font-style:italic;display:flex}.message-tools-row{gap:var(--space-xs);margin-top:var(--space-sm);flex-wrap:wrap;display:flex}.message-tool-chip{padding:3px var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-overlay-faint);color:var(--color-text-muted);font-size:var(--font-size-xs);white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.message-tool-chip.failed{border-color:var(--color-error-border);color:var(--color-error)}.message-tool-icon{flex-shrink:0;font-size:10px}.chat-notice{margin:0 var(--space-md) var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-size:var(--font-size-sm);flex-shrink:0}.chat-notice.error{background:var(--color-error-surface);color:var(--color-error)}.input-bar{padding:10px var(--space-md) calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--color-border);background:var(--color-bg);flex-shrink:0}.input-container{background:var(--color-surface-elevated);border:1px solid var(--color-border-strong);border-radius:var(--radius-xl);padding:8px 8px 8px var(--space-lg);box-shadow:var(--shadow-card);transition:border-color var(--transition-normal), box-shadow var(--transition-normal);align-items:flex-end;gap:10px;display:flex}.input-container:focus-within{border-color:var(--color-primary-hover);box-shadow:var(--shadow-card), var(--shadow-focus)}.message-input{color:var(--color-text-primary);font-size:16px;line-height:var(--line-height-normal);resize:none;background:0 0;border:none;outline:none;flex:1;min-height:24px;max-height:120px;padding:6px 0}.message-input::placeholder{color:var(--color-text-muted)}.message-input:disabled{color:var(--color-text-disabled);cursor:not-allowed}.message-input:disabled::placeholder{color:var(--color-text-disabled)}.send-btn{border-radius:var(--radius-full);background:var(--color-primary);width:44px;min-width:44px;height:44px;color:var(--color-on-primary);font-size:var(--font-size-xl);box-shadow:0 2px 14px var(--color-primary-glow);transition:background var(--transition-normal), box-shadow var(--transition-normal), transform var(--transition-fast);border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.send-btn:hover{background:var(--color-primary-hover);box-shadow:0 2px 20px var(--color-primary-glow-strong);transform:scale(1.04)}.send-btn:active{background:var(--color-primary-active);transform:scale(.95)}.send-btn:disabled{opacity:.4;box-shadow:none;cursor:not-allowed}.empty-state{justify-content:center;align-items:center;gap:var(--space-xl);padding:var(--space-2xl);text-align:center;flex-direction:column;flex:1;display:flex}.empty-state-icon{border-radius:var(--radius-full);background:var(--color-surface-elevated);border:1px solid var(--color-border);width:112px;height:112px;box-shadow:var(--shadow-glow);margin-bottom:var(--space-sm);justify-content:center;align-items:center;display:flex}.empty-state-text{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);letter-spacing:-.01em}.empty-state-hint{font-size:var(--font-size-base);color:var(--color-text-secondary);padding:10px var(--space-xl);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-full)}.response-display{display:none}.documents-view{padding:var(--space-md) var(--space-md) var(--space-lg);gap:var(--space-lg);flex-direction:column;flex:1;display:flex;overflow-y:auto}.documents-header{justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.documents-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.documents-upload-btn{align-items:center;gap:var(--space-sm);padding:10px var(--space-lg);border-radius:var(--radius-full);background:var(--color-primary);color:var(--color-on-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;white-space:nowrap;transition:background var(--transition-normal), opacity var(--transition-normal);display:inline-flex}.documents-upload-btn:hover{background:var(--color-primary-hover)}.documents-upload-btn.disabled{cursor:default;opacity:.6}.upload-progress-track{border-radius:var(--radius-full);background:var(--color-surface-elevated);height:6px;overflow:hidden}.upload-progress-fill{background:var(--color-primary);height:100%;transition:width var(--transition-fast)}.documents-notice{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.documents-notice.error{background:var(--color-error-surface);border:1px solid var(--color-error-border);color:var(--color-error)}.documents-loading{color:var(--color-text-muted);font-size:var(--font-size-base);padding:var(--space-xl) 0;text-align:center}.documents-empty{justify-content:center;align-items:center;gap:var(--space-md);padding:var(--space-2xl);text-align:center;flex-direction:column;flex:1;display:flex}.documents-empty-icon{border-radius:var(--radius-full);background:var(--color-surface-elevated);border:1px solid var(--color-border);width:72px;height:72px;font-size:var(--font-size-2xl);justify-content:center;align-items:center;display:flex}.documents-empty-text{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.documents-empty-hint{font-size:var(--font-size-base);color:var(--color-text-secondary)}.document-list{gap:var(--space-sm);flex-direction:column;display:flex}.document-row{align-items:center;gap:var(--space-md);padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);transition:border-color var(--transition-normal);display:flex}.document-row:hover{border-color:var(--color-border-strong)}.document-info{flex:1;min-width:0}.document-name{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.document-extracted-title{font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-style:italic;overflow:hidden}.document-meta{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:2px}.document-error{font-size:var(--font-size-xs);color:var(--color-error);margin-top:var(--space-xs)}.document-retrieval-status{font-size:var(--font-size-xs);color:var(--color-primary);margin-top:1px}.document-status-badge{padding:3px var(--space-sm);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:capitalize;flex-shrink:0}.document-status-badge.pending{color:var(--color-warning);background:#f2b13424}.document-status-badge.processing{background:var(--color-primary-glow);color:var(--color-accent-blue)}.document-status-badge.completed{background:var(--color-primary-glow);color:var(--color-success)}.document-status-badge.failed{background:var(--color-error-surface);color:var(--color-error)}.document-delete-btn{border-radius:var(--radius-sm);width:30px;height:30px;font-size:var(--font-size-sm);cursor:pointer;transition:background var(--transition-normal);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.document-delete-btn:hover{background:var(--color-surface-hover)}.document-delete-btn:disabled{cursor:default;opacity:.5}.memory-category-badge{border-radius:var(--radius-full);background:var(--color-overlay-subtle);color:var(--color-text-secondary);font-size:10px;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.02em;margin-right:var(--space-xs);padding:1px 8px;display:inline-block}.memory-create-row,.memory-filter-row{align-items:center;gap:var(--space-sm);padding:0 var(--space-md) var(--space-md);flex-wrap:wrap;display:flex}.memory-create-input,.memory-search-input{min-width:160px;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-elevated);color:var(--color-text-primary);font-size:var(--font-size-sm);flex:1}.memory-create-select{padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-elevated);color:var(--color-text-primary);font-size:var(--font-size-sm)}.memory-toggle-label{align-items:center;gap:var(--space-xs);color:var(--color-text-secondary);font-size:var(--font-size-xs);white-space:nowrap;display:flex}.memory-row-actions{flex-shrink:0;align-items:center;gap:2px;display:flex}.memory-candidates-section{margin:0 var(--space-md) var(--space-md);padding:var(--space-md);border:1px solid var(--color-primary-glow);border-radius:var(--radius-lg);background:var(--color-primary-glow)}.memory-section-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.03em;margin-bottom:var(--space-sm)}.memory-candidate-row{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-sm) 0;border-top:1px solid var(--color-border);display:flex}.memory-candidate-row:first-of-type{border-top:none}.memory-candidate-content{color:var(--color-text-primary);font-size:var(--font-size-sm);flex:1}.memory-candidate-actions{gap:var(--space-xs);flex-shrink:0;display:flex}.memory-action-btn{padding:4px var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-elevated);color:var(--color-text-secondary);font-size:var(--font-size-xs);cursor:pointer;white-space:nowrap;transition:background var(--transition-normal), color var(--transition-normal)}.memory-action-btn:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.memory-action-btn:disabled{cursor:default;opacity:.5}.memory-action-btn.approve{background:var(--color-primary);color:var(--color-on-primary);border-color:#0000}.memory-action-btn.approve:hover{background:var(--color-primary-hover)}.memory-duplicate-notice{gap:var(--space-xs);flex-direction:column;display:flex}.memory-duplicate-row{justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.memory-duplicate-content{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.memory-duplicate-merge-btn,.memory-duplicate-dismiss-btn{padding:4px var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-elevated);color:var(--color-text-primary);font-size:var(--font-size-xs);cursor:pointer;align-self:flex-start}.task-create-panel{gap:var(--space-sm);padding:var(--space-md);margin-bottom:var(--space-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-wrap:wrap;align-items:center;display:flex}.task-create-panel .memory-create-input{flex:240px}.task-schedule-toggle{gap:var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-secondary);align-items:center;display:flex}.task-schedule-toggle label{cursor:pointer;align-items:center;gap:4px;display:flex}.task-status-badge{border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);background:var(--color-overlay-subtle);color:var(--color-text-secondary);padding:1px 8px;display:inline-block}.task-status-badge.status-active,.task-status-badge.status-success{background:var(--color-primary-glow);color:var(--color-primary)}.task-status-badge.status-paused{background:var(--color-overlay-subtle);color:var(--color-warning)}.task-status-badge.status-failed,.task-status-badge.status-failure{background:var(--color-error-surface);color:var(--color-error)}.task-row{flex-wrap:wrap}.task-row .document-info{cursor:pointer}.task-execution-history{gap:var(--space-xs);margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--color-border);font-size:var(--font-size-xs);color:var(--color-text-secondary);flex-direction:column;flex-basis:100%;display:flex}.task-execution-empty{color:var(--color-text-muted)}.project-switcher-wrapper{flex:1;min-width:0;position:relative}.project-switcher-trigger{align-items:center;gap:var(--space-xs);width:100%;padding:4px var(--space-sm);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;background:0 0;border:1px solid #0000;min-width:0;display:flex}.project-switcher-trigger:hover{background:var(--color-surface-hover);border-color:var(--color-border)}.project-switcher-swatch{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;display:inline-flex}.project-switcher-swatch.small{width:16px;height:16px;font-size:10px}.project-switcher-name{text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:1;overflow:hidden}.project-switcher-chevron{color:var(--color-text-muted);flex-shrink:0;font-size:10px}.project-switcher-backdrop{z-index:40;position:fixed;inset:0}.project-switcher-dropdown{top:calc(100% + var(--space-xs));z-index:41;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);width:260px;max-height:360px;box-shadow:var(--shadow-popup);padding:var(--space-xs);flex-direction:column;display:flex;position:absolute;left:0}.project-switcher-error{padding:var(--space-sm);color:var(--color-error);font-size:var(--font-size-xs)}.project-switcher-list{max-height:220px;overflow-y:auto}.project-switcher-item{align-items:center;gap:var(--space-xs);padding:4px var(--space-xs);border-radius:var(--radius-sm);display:flex}.project-switcher-item:hover{background:var(--color-surface-hover)}.project-switcher-item.active{background:var(--color-primary-glow)}.project-switcher-item-label{align-items:center;gap:var(--space-xs);min-width:0;color:var(--color-text-primary);font-size:var(--font-size-sm);text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;flex:1;display:flex;overflow:hidden}.project-switcher-item-actions{flex-shrink:0;gap:2px;display:flex}.project-switcher-action-btn{border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;display:flex}.project-switcher-action-btn:hover{background:var(--color-surface-hover)}.project-switcher-action-btn:disabled{opacity:.5;cursor:default}.project-switcher-empty{padding:var(--space-md);text-align:center;color:var(--color-text-muted);font-size:var(--font-size-xs)}.project-switcher-edit-input{min-width:0;padding:3px var(--space-xs);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--font-size-sm);flex:1}.project-switcher-create-row{gap:var(--space-xs);padding:var(--space-xs);border-top:1px solid var(--color-border);margin-top:var(--space-xs);display:flex}.project-switcher-toggle-archived{border:none;border-top:1px solid var(--color-border);color:var(--color-text-accent);font-size:var(--font-size-xs);padding:var(--space-xs);margin-top:var(--space-xs);cursor:pointer;text-align:left;background:0 0}.notification-bell-wrapper{position:relative}.notification-bell{border-radius:var(--radius-md);width:32px;height:32px;color:var(--color-text-secondary);font-size:var(--font-size-md);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:relative}.notification-bell:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.notification-bell-badge{border-radius:var(--radius-full);background:var(--color-primary);min-width:16px;height:16px;color:var(--color-on-primary);font-size:10px;font-weight:var(--font-weight-semibold);justify-content:center;align-items:center;padding:0 4px;display:inline-flex;position:absolute;top:2px;right:2px}.notification-backdrop{z-index:40;position:fixed;inset:0}.notification-dropdown{top:calc(100% + var(--space-xs));z-index:41;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);width:300px;max-height:360px;box-shadow:var(--shadow-popup);flex-direction:column;display:flex;position:absolute;right:0;overflow-y:auto}.notification-dropdown-header{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);justify-content:space-between;align-items:center;display:flex}.notification-mark-all-btn{color:var(--color-text-accent);font-size:var(--font-size-xs);cursor:pointer;background:0 0;border:none}.notification-empty{padding:var(--space-lg);text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm)}.notification-item{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border);cursor:pointer}.notification-item:last-child{border-bottom:none}.notification-item:hover{background:var(--color-surface-hover)}.notification-item.unread{background:var(--color-overlay-faint)}.notification-item-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.notification-item-body{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-top:2px}.notification-item-time{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:4px}@media (width>=768px){.messages-container{padding:var(--space-lg) 20px 12px}.documents-view{padding:var(--space-lg) 20px}.chat-header{padding:14px 20px}.input-bar{padding:var(--space-md) 20px calc(14px + env(safe-area-inset-bottom))}.message-row{max-width:min(80%,600px)}}@media (width>=1024px){.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);opacity:1;z-index:auto;box-shadow:none;border-radius:0;padding-top:0;transition:none;position:static;transform:none}.sidebar-header{height:var(--header-height);padding:0 var(--space-lg)}.chat-header{height:var(--header-height);flex-direction:column;justify-content:center;display:flex}.sidebar-backdrop,.mobile-topbar,.sidebar-close-btn,.conversation-item-actions{display:none}.conversation-item:hover .conversation-item-actions{display:flex}.conversation-action-btn{width:22px;height:22px;font-size:var(--font-size-xs)}.message-edit-trigger{display:none}.message-row:hover .message-edit-trigger,.message-edit-trigger:focus-visible{display:flex}.messages-container{padding:var(--space-xl) var(--space-xl) var(--space-lg);gap:var(--space-lg)}.documents-view{padding:var(--space-xl)}.message-row{max-width:min(75%,720px)}.chat-header{padding:var(--space-lg) var(--space-xl)}.chat-notice{margin:0 var(--space-xl) var(--space-md)}.input-bar{padding:var(--space-lg) var(--space-xl) 20px}.message-input{font-size:var(--font-size-md)}.send-btn{width:38px;min-width:38px;height:38px}}.admin-dashboard{height:100%;padding:var(--space-xl);gap:var(--space-lg);background:var(--color-bg);flex-direction:column;display:flex;overflow-y:auto}.admin-dashboard-header{justify-content:space-between;align-items:center;display:flex}.admin-dashboard-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.admin-tabs{gap:var(--space-xs);border-bottom:1px solid var(--color-border);padding-bottom:var(--space-sm);flex-wrap:wrap;display:flex}.admin-tab{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none}.admin-tab:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.admin-tab.active{background:var(--color-surface-elevated);color:var(--color-primary)}.admin-tab-content{flex:1;min-height:0}.admin-page{gap:var(--space-lg);flex-direction:column;display:flex}.admin-loading,.admin-empty{padding:var(--space-2xl);color:var(--color-text-muted);font-size:var(--font-size-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);justify-content:center;align-items:center;display:flex}.admin-error{padding:var(--space-lg);color:var(--color-error);background:var(--color-error-surface);border:1px solid var(--color-error-border);border-radius:var(--radius-md)}.admin-notice{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.admin-notice.error{color:var(--color-error);background:var(--color-error-surface);border:1px solid var(--color-error-border)}.admin-stat-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);gap:var(--space-xs);flex-direction:column;display:flex}.stat-card-label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.stat-card-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.stat-card-hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.stat-card-success .stat-card-value{color:var(--color-success)}.stat-card-warning .stat-card-value{color:var(--color-warning)}.stat-card-error .stat-card-value{color:var(--color-error)}.admin-detail-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.admin-detail-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg)}.admin-detail-label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--space-xs)}.admin-detail-value{font-size:var(--font-size-lg);color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.admin-detail-subvalue{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:var(--font-weight-regular)}.admin-badge{padding:2px var(--space-sm);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);background:var(--color-surface-elevated);color:var(--color-text-secondary);display:inline-block}.admin-badge.success{color:var(--color-success);background:var(--color-primary-glow)}.admin-badge.warning{color:var(--color-warning);background:#f2b13424}.admin-badge.error{color:var(--color-error);background:var(--color-error-surface)}.admin-badge.default{color:var(--color-text-secondary)}.admin-chart-grid{gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(320px,1fr));display:grid}.line-chart{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg)}.line-chart-header{margin-bottom:var(--space-sm);justify-content:space-between;align-items:baseline;gap:var(--space-sm);display:flex}.line-chart-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.line-chart-value{font-size:var(--font-size-sm);color:var(--color-text-primary);font-variant-numeric:tabular-nums;white-space:nowrap}.line-chart-svg{cursor:crosshair;width:100%;display:block}.line-chart-grid{stroke:var(--color-border);stroke-width:1px}.line-chart-crosshair{stroke:var(--color-text-muted);stroke-width:1px;stroke-dasharray:2 2}.line-chart-empty{color:var(--color-text-muted);font-size:var(--font-size-sm);justify-content:center;align-items:center;display:flex}.admin-filters{gap:var(--space-sm);flex-wrap:wrap;display:flex}.admin-filters input,.admin-filters select{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm)}.admin-filters input{flex:1;min-width:220px}.admin-filters input:focus,.admin-filters select:focus{box-shadow:var(--shadow-focus);border-color:var(--color-primary);outline:none}.admin-checkbox-label{align-items:center;gap:var(--space-xs);font-size:var(--font-size-sm);color:var(--color-text-secondary);display:flex}.admin-table-wrapper{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.admin-table th,.admin-table td{padding:var(--space-sm) var(--space-md);text-align:left;white-space:nowrap;border-bottom:1px solid var(--color-border)}.admin-table th{color:var(--color-text-muted);font-weight:var(--font-weight-medium);text-transform:uppercase;font-size:var(--font-size-xs);letter-spacing:.03em}.admin-table td{color:var(--color-text-secondary)}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr:hover{background:var(--color-surface-hover)}.admin-table-truncate{text-overflow:ellipsis;max-width:260px;overflow:hidden}.admin-table-hint{color:var(--color-text-muted);font-size:var(--font-size-xs)}.admin-inline-btn{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);padding:4px var(--space-sm);font-size:var(--font-size-xs);cursor:pointer;transition:border-color var(--transition-fast)}.admin-inline-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.admin-inline-btn:disabled{opacity:.6;cursor:default}.admin-pagination{justify-content:center;align-items:center;gap:var(--space-md);display:flex}.admin-pagination button{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm);cursor:pointer}.admin-pagination button:disabled{opacity:.4;cursor:default}.admin-pagination-status{color:var(--color-text-muted);font-size:var(--font-size-sm)}.admin-tool-explorer{gap:var(--space-lg);grid-template-columns:260px 1fr;align-items:start;display:grid}.admin-tool-list{gap:var(--space-xs);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm);flex-direction:column;display:flex}.admin-tool-list-item{justify-content:space-between;align-items:center;gap:var(--space-sm);border-radius:var(--radius-sm);color:var(--color-text-secondary);padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm);text-align:left;cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;display:flex}.admin-tool-list-item:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.admin-tool-list-item.active{background:var(--color-surface-elevated);color:var(--color-primary)}.admin-tool-list-name{font-weight:var(--font-weight-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-tool-detail{gap:var(--space-lg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-lg);flex-direction:column;display:flex}.admin-tool-description{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0}.admin-tool-tags{gap:var(--space-xs);flex-wrap:wrap;display:flex}.admin-json-viewer{background:var(--color-overlay-subtle);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-md);font-family:monospace;font-size:var(--font-size-xs);color:var(--color-text-primary);max-height:260px;overflow:auto}.admin-tool-execute{gap:var(--space-sm);flex-direction:column;display:flex}.admin-tool-arguments-input{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);padding:var(--space-sm) var(--space-md);font-family:monospace;font-size:var(--font-size-sm);resize:vertical}.admin-tool-arguments-input:focus{box-shadow:var(--shadow-focus);border-color:var(--color-primary);outline:none}.admin-inline-btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary);padding:var(--space-sm) var(--space-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);align-self:flex-start}.admin-inline-btn.primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:var(--color-on-primary)}.admin-tool-result{gap:var(--space-xs);flex-direction:column;display:flex}@media (width<=768px){.admin-dashboard{padding:var(--space-lg) var(--space-md)}.admin-stat-grid,.admin-detail-grid,.admin-chart-grid,.admin-tool-explorer{grid-template-columns:1fr}}
