:root{--bg-app:#0f0e17;--bg-primary:#1a1823;--bg-secondary:#232135;--bg-tertiary:#2d2a3d;--bg-hover:#353247;--bg-active:#3d3a52;--text-primary:#e8e6f0;--text-secondary:#b4b0c8;--text-muted:#6e6a86;--text-disabled:#4a4760;--text-inverse:#0f0e17;--accent-primary:#6366f1;--accent-primary-hover:#7c3aed;--accent-primary-active:#5b21b6;--accent-secondary:#8b5cf6;--accent-tertiary:#a78bfa;--status-success:#10b981;--status-success-bg:rgba(16,185,129,0.12);--status-success-border:rgba(16,185,129,0.3);--status-warning:#f59e0b;--status-warning-bg:rgba(245,158,11,0.12);--status-warning-border:rgba(245,158,11,0.3);--status-error:#ef4444;--status-error-bg:rgba(239,68,68,0.12);--status-error-border:rgba(239,68,68,0.3);--status-info:#06b6d4;--status-info-bg:rgba(6,182,212,0.12);--status-info-border:rgba(6,182,212,0.3);--entity-gene:#10b981;--entity-gene-bg:rgba(16,185,129,0.12);--entity-gene-border:rgba(16,185,129,0.3);--entity-protein:#a78bfa;--entity-protein-bg:rgba(167,139,250,0.12);--entity-protein-border:rgba(167,139,250,0.3);--entity-molecule:#06b6d4;--entity-molecule-bg:rgba(6,182,212,0.12);--entity-molecule-border:rgba(6,182,212,0.3);--entity-pathway:#14b8a6;--entity-pathway-bg:rgba(20,184,166,0.12);--entity-pathway-border:rgba(20,184,166,0.3);--entity-drug:#f59e0b;--entity-drug-bg:rgba(245,158,11,0.12);--entity-drug-border:rgba(245,158,11,0.3);--entity-disease:#ef4444;--entity-disease-bg:rgba(239,68,68,0.12);--entity-disease-border:rgba(239,68,68,0.3);--entity-tissue:#ec4899;--entity-tissue-bg:rgba(236,72,153,0.12);--entity-tissue-border:rgba(236,72,153,0.3);--entity-trial:#3b82f6;--entity-trial-bg:rgba(59,130,246,0.12);--entity-trial-border:rgba(59,130,246,0.3);--border-primary:#3a3650;--border-secondary:#4a4760;--border-tertiary:#5a5570;--border-focus:var(--accent-primary);--font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-mono:"Cascadia Code","SF Mono",Consolas,"Liberation Mono",Menlo,monospace;--font-display:"Inter",-apple-system,BlinkMacSystemFont,sans-serif;--font-display:2rem;--font-h1:1.5rem;--font-h2:1.25rem;--font-h3:1.125rem;--font-body:0.9375rem;--font-sm:0.875rem;--font-xs:0.75rem;--font-code:0.875rem;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.625;--line-height-loose:2;--letter-spacing-tight:-0.01em;--letter-spacing-normal:0;--letter-spacing-wide:0.025em;--letter-spacing-wider:0.05em;--spacing-0:0;--spacing-1:0.25rem;--spacing-2:0.5rem;--spacing-3:0.75rem;--spacing-4:1rem;--spacing-5:1.25rem;--spacing-6:1.5rem;--spacing-8:2rem;--spacing-10:2.5rem;--spacing-12:3rem;--spacing-16:4rem;--spacing-20:5rem;--spacing-24:6rem;--radius-xs:0.25rem;--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--shadow-xs:0 1px 2px 0 rgba(0,0,0,0.3);--shadow-sm:0 1px 3px 0 rgba(0,0,0,0.4),0 1px 2px -1px rgba(0,0,0,0.4);--shadow-md:0 4px 6px -1px rgba(0,0,0,0.4),0 2px 4px -2px rgba(0,0,0,0.4);--shadow-lg:0 10px 15px -3px rgba(0,0,0,0.5),0 4px 6px -4px rgba(0,0,0,0.5);--shadow-xl:0 20px 25px -5px rgba(0,0,0,0.5),0 8px 10px -6px rgba(0,0,0,0.5);--shadow-2xl:0 25px 50px -12px rgba(0,0,0,0.6);--shadow-inner:inset 0 2px 4px 0 rgba(0,0,0,0.3);--glow-primary:0 0 20px rgba(99,102,241,0.4);--glow-success:0 0 20px rgba(16,185,129,0.4);--glow-warning:0 0 20px rgba(245,158,11,0.4);--glow-error:0 0 20px rgba(239,68,68,0.4);--duration-instant:0.1s;--duration-fast:0.15s;--duration-normal:0.25s;--duration-slow:0.3s;--duration-slower:0.4s;--ease-standard:cubic-bezier(0.4,0,0.2,1);--ease-decelerate:cubic-bezier(0.0,0,0.2,1);--ease-accelerate:cubic-bezier(0.4,0,1,1);--ease-bounce:cubic-bezier(0.68,-0.55,0.265,1.55);--transition-fast:var(--duration-fast) var(--ease-standard);--transition-normal:var(--duration-normal) var(--ease-standard);--transition-slow:var(--duration-slow) var(--ease-standard);--touch-target:44px;--touch-target-sm:36px;--touch-target-lg:56px;--container-sm:640px;--container-md:768px;--container-lg:1024px;--container-xl:1280px;--container-2xl:1536px;--sidebar-width:280px;--sidebar-collapsed:64px;--header-height:64px;--header-height-mobile:56px;--input-min-height:44px;--input-max-height:160px;--z-base:0;--z-header:50;--z-input:30;--z-floating:40;--z-kg-bar:25;--z-sidebar:100;--z-sidebar-overlay:99;--z-dropdown:70;--z-modal:110;--z-toast:120;--z-tooltip:130;--breakpoint-xs:480px;--breakpoint-sm:640px;--breakpoint-md:768px;--breakpoint-lg:1024px;--breakpoint-xl:1280px;--breakpoint-2xl:1536px;--opacity-disabled:0.4;--opacity-muted:0.6;--opacity-hover:0.8;--opacity-full:1;--backdrop-blur-sm:blur(4px);--backdrop-blur-md:blur(8px);--backdrop-blur-lg:blur(12px);--backdrop-blur-xl:blur(16px)}@media (prefers-contrast:high){:root{--border-primary:#6e6a86;--border-secondary:#8a86a0;--text-secondary:#d0cee0}}@media (prefers-reduced-motion:reduce){:root{--duration-instant:0.01s;--duration-fast:0.01s;--duration-normal:0.01s;--duration-slow:0.01s;--duration-slower:0.01s}}@media (max-width:767px){:root{--font-display:1.75rem;--font-h1:1.375rem;--font-h2:1.125rem;--font-h3:1rem;--font-body:0.875rem;--font-sm:0.8125rem;--font-xs:0.6875rem;--font-code:0.8125rem}}*{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body,html{font-family:var(--font-sans);line-height:var(--line-height-normal)}body{background-color:var(--bg-app);color:var(--text-primary);font-size:var(--font-body);overflow-x:hidden}.font-mono,code,pre{font-family:var(--font-mono);font-size:var(--font-code)}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);margin:0}h1{font-size:var(--font-h1)}h2{font-size:var(--font-h2)}h3{font-size:var(--font-h3)}p{margin:0;line-height:var(--line-height-relaxed)}.surface{background-color:var(--bg-secondary)}.overlay{background-color:var(--bg-tertiary)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-disabled{color:var(--text-disabled)}.interactive{transition:all var(--transition-fast);cursor:pointer;user-select:none}.interactive:hover{background-color:var(--bg-hover)}.interactive:active{background-color:var(--bg-active)}.interactive:disabled{opacity:var(--opacity-disabled);cursor:not-allowed;pointer-events:none}.btn{font-family:var(--font-sans);font-size:var(--font-sm);font-weight:var(--font-weight-medium);padding:var(--spacing-3) var(--spacing-4);border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);outline:none;display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-2);min-height:var(--touch-target-sm);user-select:none;white-space:nowrap}.btn:focus-visible{box-shadow:0 0 0 3px rgba(99,102,241,.2);outline:2px solid var(--border-focus);outline-offset:2px}.btn:disabled{opacity:var(--opacity-disabled);cursor:not-allowed}.btn-primary{background-color:var(--accent-primary);color:white;border-color:var(--accent-primary)}.btn-primary:hover:not(:disabled){background-color:var(--accent-primary-hover);border-color:var(--accent-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background-color:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-primary)}.btn-secondary:hover:not(:disabled){background-color:var(--bg-hover);border-color:var(--border-secondary)}.btn-ghost{background-color:transparent;color:var(--text-secondary);border-color:transparent}.btn-ghost:hover:not(:disabled){background-color:var(--bg-hover);color:var(--text-primary)}.btn-sm{padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-xs);min-height:var(--touch-target-sm)}.btn-lg{padding:var(--spacing-4) var(--spacing-6);font-size:var(--font-body);min-height:var(--touch-target-lg)}.btn-icon{padding:var(--spacing-2);width:var(--touch-target-sm);height:var(--touch-target-sm)}.input{font-family:var(--font-sans);font-size:var(--font-body);background-color:var(--bg-tertiary);border:1px solid var(--border-primary);color:var(--text-primary);padding:var(--spacing-3);border-radius:var(--radius-sm);transition:all var(--transition-fast);outline:none;width:100%;min-height:var(--touch-target-sm)}.input:hover:not(:disabled){border-color:var(--border-secondary)}.input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px rgba(99,102,241,.1)}.input:disabled{opacity:var(--opacity-disabled);cursor:not-allowed}.input::placeholder{color:var(--text-muted)}textarea.input{resize:vertical;line-height:var(--line-height-normal)}.chat-header{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-primary);height:var(--header-height);display:flex;align-items:center;padding:0 var(--spacing-6)}.chat-container{display:flex;flex-direction:column;height:100vh;overflow:hidden}.chat-messages{flex:1;overflow-y:auto;padding:var(--spacing-6)}.chat-message{background-color:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-primary);padding:var(--spacing-4);margin-bottom:var(--spacing-4)}.chat-message.user{background-color:var(--bg-tertiary);max-width:85%;margin-left:auto}.chat-message.assistant{max-width:100%}.chat-input,.chat-message.assistant{background-color:var(--bg-secondary)}.chat-input{border-top:1px solid var(--border-primary);padding:var(--spacing-4) var(--spacing-6);backdrop-filter:var(--backdrop-blur-md)}.tool-execution{background-color:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);padding:var(--spacing-3);margin:var(--spacing-2) 0;transition:all var(--transition-fast)}.tool-execution.executing{border-color:var(--accent-primary);background-color:var(--bg-hover);box-shadow:0 0 0 1px var(--accent-primary)}.tool-execution.completed{border-color:var(--status-success-border);background-color:var(--status-success-bg)}.tool-execution.error{border-color:var(--status-error-border);background-color:var(--status-error-bg)}.tool-badge{display:inline-flex;align-items:center;gap:var(--spacing-1);padding:var(--spacing-1) var(--spacing-2);background-color:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-xs);font-size:var(--font-xs);font-weight:var(--font-weight-medium);color:var(--text-secondary);transition:all var(--transition-fast)}.tool-badge:hover{border-color:var(--accent-primary);background-color:var(--bg-hover);color:var(--text-primary)}.text-success{color:var(--status-success)}.text-warning{color:var(--status-warning)}.text-error{color:var(--status-error)}.text-info{color:var(--status-info)}.bg-success{background-color:var(--status-success-bg)}.bg-warning{background-color:var(--status-warning-bg)}.bg-error{background-color:var(--status-error-bg)}.bg-info{background-color:var(--status-info-bg)}.border-success{border-color:var(--status-success-border)}.border-warning{border-color:var(--status-warning-border)}.border-error{border-color:var(--status-error-border)}.border-info{border-color:var(--status-info-border)}.animate-pulse{animation:pulse 2s var(--ease-standard) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-spin{animation:spin 1s linear infinite}.animate-fadeIn{animation:fadeIn var(--duration-normal) var(--ease-standard)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-slideUp{animation:slideUp var(--duration-normal) var(--ease-decelerate)}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.animate-scaleIn{animation:scaleIn var(--duration-fast) var(--ease-bounce)}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-primary);border-radius:var(--radius-sm);border:2px solid var(--bg-primary)}::-webkit-scrollbar-thumb:hover{background:var(--border-secondary)}::-webkit-scrollbar-thumb:active{background:var(--border-tertiary)}*{scrollbar-width:thin;scrollbar-color:var(--border-primary) var(--bg-primary)}::selection{background-color:rgba(99,102,241,.3);color:var(--text-primary)}::-moz-selection{background-color:rgba(99,102,241,.3);color:var(--text-primary)}@media (max-width:639px){:root{--header-height:var(--header-height-mobile)}body{font-size:var(--font-body)}.chat-container{padding:var(--spacing-2)}.chat-message{margin:var(--spacing-2) 0;padding:var(--spacing-3);border-radius:var(--radius-sm)}.chat-message.user{margin-left:var(--spacing-2)}.chat-message.assistant{margin-right:var(--spacing-2)}.chat-input{padding:var(--spacing-2) var(--spacing-3)}.btn{min-height:var(--touch-target);padding:var(--spacing-3) var(--spacing-4);font-size:var(--font-sm)}.btn-sm{min-height:var(--touch-target-sm);padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-xs)}.dropdown-mobile{position:fixed!important;top:auto!important;bottom:0!important;left:0!important;right:0!important;width:100%!important;max-height:60vh;border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-2xl)}.selector-mobile{flex-wrap:wrap;gap:var(--spacing-2)}.selector-mobile .btn{flex:1;min-width:120px}.suggestion-card{padding:var(--spacing-3)!important;font-size:var(--font-xs)!important}.kg-toggle-button{bottom:calc(var(--spacing-20) + var(--spacing-2))!important;right:var(--spacing-4)!important;padding:var(--spacing-2) var(--spacing-3)!important;font-size:var(--font-xs)!important;min-width:140px!important}.entity{padding:1px 4px!important;font-size:.7rem!important}.streaming-indicator{font-size:var(--font-xs)!important;gap:var(--spacing-1)!important}}@media (min-width:640px) and (max-width:767px){.chat-message.user{margin-left:var(--spacing-8)}.chat-message.assistant{margin-right:var(--spacing-8)}.chat-input{padding:var(--spacing-4) var(--spacing-6)}.tool-dropdown{width:320px}.conversation-item{padding:var(--spacing-3)}}@media (min-width:768px){.chat-message.user{margin-left:3rem}.chat-message.assistant{margin-right:3rem}.interactive:hover{transform:translateY(-1px)}.desktop-layout{display:flex;gap:var(--space-lg)}.main-content{flex:1;min-width:0}.sidebar{width:320px;flex-shrink:0}}@media (min-width:1024px){.container{max-width:1200px;margin:0 auto}.chat-container{padding:var(--space-xl)}}.mobile-nav{display:none}@media (max-width:767px){.mobile-nav{display:block;position:fixed;top:0;left:0;right:0;z-index:100;background-color:var(--bg-secondary);border-bottom:1px solid var(--border-primary);padding:var(--space-sm)}.desktop-nav{display:none}.main-container{padding-top:60px}}@media (pointer:coarse){.btn,.interactive{min-height:var(--touch-target)}.btn-sm{min-height:40px;padding:.5rem 1rem}.scrollable{-webkit-overflow-scrolling:touch;scroll-behavior:smooth}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.icon{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.animate-fadeIn,.animate-pulse,.animate-spin{animation:none!important}}.conversation-list{display:flex;flex-direction:column;height:100%;background:var(--bg-primary);border-right:1px solid var(--border-primary);overflow:hidden}.conversation-list-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-4);border-bottom:1px solid var(--border-primary);background:var(--bg-secondary);min-height:var(--header-height)}.conversation-list-header h3{font-size:var(--font-h3);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.new-conversation-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--accent-primary);color:white;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.new-conversation-btn:hover{background:var(--accent-secondary);transform:translateY(-1px)}.conversations-scroll{flex:1;overflow-y:auto;padding:.5rem}.conversation-item{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3);margin-bottom:var(--spacing-2);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);position:relative}.conversation-item:hover{background:var(--bg-secondary);border-color:var(--border-primary)}.conversation-item.active{background:var(--bg-tertiary);border-color:var(--accent-primary)}.conversation-item.active:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent-primary);border-radius:0 var(--radius-xs) var(--radius-xs) 0}.conversation-content{flex:1;min-width:0}.conversation-title{font-weight:500;color:var(--text-primary);margin-bottom:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversation-meta{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--text-muted)}.conversation-preview{font-size:.75rem;color:var(--text-secondary);margin-top:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.delete-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid var(--border-primary);border-radius:4px;color:var(--text-muted);cursor:pointer;opacity:0;transition:all .2s ease}.conversation-item:hover .delete-btn{opacity:1}.delete-btn.confirm,.delete-btn:hover{background:var(--status-error);color:white;border-color:var(--status-error)}.delete-btn.confirm{opacity:1}.empty-state,.error-state,.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center;gap:1rem}.loading-spinner{width:24px;height:24px;border-top:2px solid var(--border-primary);border:2px solid var(--border-primary);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}.retry-btn,.start-chat-btn{padding:.5rem 1rem;background:var(--accent-primary);color:white;border:none;border-radius:4px;cursor:pointer;transition:background .2s ease}.retry-btn:hover,.start-chat-btn:hover{background:var(--accent-secondary)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.responsive-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr))}.responsive-flex{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}.hide-mobile{display:block}@media (max-width:768px){.hide-mobile{display:none!important}.show-mobile{display:block!important}.responsive-stack{flex-direction:column!important;align-items:stretch!important}.conversation-list{max-height:300px}.conversation-item{padding:.5rem}.conversation-meta{flex-direction:column;align-items:flex-start;gap:.25rem}}.show-mobile{display:none}@media (max-width:767px){.hidden-mobile{display:none!important}.show-mobile{display:block!important}.show-mobile-flex{display:flex!important}.show-mobile-inline{display:inline!important}}.text-responsive{font-size:var(--text-sm)}@media (min-width:640px){.text-responsive{font-size:var(--text-base)}}@media (min-width:1024px){.text-responsive{font-size:var(--text-lg)}}.gap-responsive{gap:var(--space-xs)}@media (min-width:640px){.gap-responsive{gap:var(--space-sm)}}@media (min-width:1024px){.gap-responsive{gap:var(--space-md)}}@container (max-width: 400px){.container-responsive{font-size:var(--text-sm);padding:var(--space-xs)}}@media print{.no-print{display:none!important}.chat-message{break-inside:avoid;background:white!important;color:black!important;border:1px solid #ccc;margin:.5rem 0}.btn,.interactive{display:none!important}}