@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Poppins:wght@400;500;600;700;800&display=swap";:root{--color-primary: #8B5CF6;--color-primary-hover: #7C3AED;--color-primary-light: #A78BFA;--color-secondary: #F59E0B;--color-accent: #10B981;--color-bg-primary: #FAFAFA;--color-bg-secondary: #FFFFFF;--color-bg-tertiary: #F3F4F6;--color-bg-hover: #E5E7EB;--color-surface: rgba(255, 255, 255, .98);--color-surface-glass: rgba(255, 255, 255, .85);--color-surface-hover: rgba(255, 255, 255, 1);--color-border: #E5E7EB;--color-border-light: #F3F4F6;--color-border-focus: #8B5CF6;--color-text-primary: #111827;--color-text-secondary: #4B5563;--color-text-tertiary: #6B7280;--color-text-muted: #9CA3AF;--color-text-inverse: #FFFFFF;--gradient-primary: linear-gradient(135deg, #8B5CF6 0%, #F59E0B 100%);--gradient-accent: linear-gradient(135deg, #10B981 0%, #059669 100%);--gradient-mesh: linear-gradient(135deg, #FAF5FF 0%, #FEF3C7 50%, #FAF5FF 100%);--gradient-glass: linear-gradient(135deg, rgba(255, 255, 255, .95) 0%, rgba(255, 255, 255, .75) 100%);--color-success: #10B981;--color-success-light: #D1FAE5;--color-error: #EF4444;--color-error-light: #FEE2E2;--color-warning: #F59E0B;--color-warning-light: #FEF3C7;--color-info: #3B82F6;--color-info-light: #DBEAFE;--color-education: #8B5CF6;--color-coding: #10B981;--color-medical: #EF4444;--color-legal: #F59E0B;--color-general: #6B7280;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 24px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .08);--shadow-md: 0 4px 16px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .12);--shadow-xl: 0 12px 48px rgba(0, 0, 0, .15);--shadow-2xl: 0 20px 60px rgba(0, 0, 0, .18);--shadow-primary: 0 4px 20px rgba(37, 99, 235, .25);--shadow-accent: 0 4px 20px rgba(16, 185, 129, .25);--shadow-glow: 0 0 40px rgba(37, 99, 235, .3);--shadow-inner: inset 0 2px 4px rgba(0, 0, 0, .06);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--transition-bounce: .5s cubic-bezier(.68, -.55, .265, 1.55);--font-primary: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display: "Poppins", "Inter", sans-serif;--font-mono: "JetBrains Mono", "Courier New", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--font-size-4xl: 2.5rem;--blur-sm: blur(8px);--blur-md: blur(12px);--blur-lg: blur(20px);--blur-xl: blur(40px)}[data-theme=dark]{--color-bg-primary: #0F172A;--color-bg-secondary: #1E293B;--color-bg-tertiary: #334155;--color-bg-hover: #475569;--color-surface: rgba(30, 41, 59, .95);--color-surface-glass: rgba(30, 41, 59, .7);--color-surface-hover: rgba(51, 65, 85, 1);--color-border: #334155;--color-border-light: #475569;--color-text-primary: #F1F5F9;--color-text-secondary: #CBD5E1;--color-text-tertiary: #94A3B8;--color-text-muted: #64748B;--gradient-mesh: linear-gradient(135deg, #0F172A 0%, #1E293B 50%, #0F172A 100%);--gradient-glass: linear-gradient(135deg, rgba(30, 41, 59, .9) 0%, rgba(30, 41, 59, .6) 100%)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-primary);background:var(--color-bg-primary);color:var(--color-text-primary);line-height:1.6;overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100vh;overflow:hidden}::-webkit-scrollbar{width:0px;height:0px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:transparent}::-webkit-scrollbar-thumb:hover{background:transparent}::-webkit-scrollbar-corner{background:transparent}*{scrollbar-width:none}*{-ms-overflow-style:none}.hidden{display:none!important}.fade-in{animation:fadeIn .4s ease-out}.glass{background:var(--color-surface-glass);-webkit-backdrop-filter:var(--blur-md);backdrop-filter:var(--blur-md);border:1px solid rgba(255,255,255,.4)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-12px) rotate(2deg)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes typingDot{0%,60%,to{opacity:.4;transform:translateY(0) scale(1)}30%{opacity:1;transform:translateY(-10px) scale(1.2)}}@keyframes progressBar{0%{width:0%;opacity:.8}to{width:100%;opacity:1}}@keyframes ripple{0%{transform:scale(0);opacity:.6}to{transform:scale(4);opacity:0}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes glow{0%,to{box-shadow:0 0 20px #2563eb4d}50%{box-shadow:0 0 40px #2563eb99}}@keyframes micPulse{0%,to{transform:scale(1);box-shadow:0 0 #ef4444b3}50%{transform:scale(1.1);box-shadow:0 0 0 10px #ef444400}}.header{background:var(--color-surface);-webkit-backdrop-filter:var(--blur-lg);backdrop-filter:var(--blur-lg);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm);padding:var(--space-6) var(--space-8);position:relative}.header:after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--gradient-primary);opacity:.6}.header-content{max-width:1920px;margin:0 auto;display:flex;align-items:center;gap:var(--space-4)}.header-brand{display:flex;align-items:center;gap:var(--space-4);flex:1}.logo{width:56px;height:56px;background:var(--gradient-primary);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-3xl);box-shadow:var(--shadow-primary);transition:all var(--transition-base)}.logo:hover{transform:translateY(-2px) rotate(5deg);box-shadow:var(--shadow-lg),var(--shadow-glow)}.header-text{flex:1}.header-title{font-family:var(--font-display);font-size:var(--font-size-3xl);font-weight:800;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--space-1);letter-spacing:-.02em}.header-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:500}.theme-toggle-fixed{position:fixed;top:20px;right:20px;background:var(--gradient-primary);border:none;color:var(--color-text-inverse);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-full);transition:all .3s ease;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);width:40px;height:40px;z-index:9999}.theme-toggle-fixed:hover{transform:scale(1.1) rotate(15deg);box-shadow:var(--shadow-lg)}.theme-toggle-fixed:active{transform:scale(.95)}body,.app-container,.header,.sidebar,.chat-area,.message-bubble,.control-group{transition:background-color .3s ease,color .3s ease,border-color .3s ease}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@media(max-width:768px){.header{padding:var(--space-4) var(--space-6)}.header-title{font-size:var(--font-size-2xl)}.logo{width:48px;height:48px;font-size:var(--font-size-2xl)}}.sidebar{background:var(--color-bg-secondary);border-right:1px solid var(--color-border);display:flex;flex-direction:column;gap:var(--space-6);padding:var(--space-8);overflow-y:auto;overflow-x:hidden;transition:transform var(--transition-base);box-shadow:var(--shadow-sm);height:100%;min-height:0;position:relative}.sidebar:not(.open){transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-header{display:flex;justify-content:center;align-items:center;margin-bottom:var(--space-6);padding-bottom:var(--space-4);border-bottom:2px solid var(--color-border)}.sidebar-title{font-family:var(--font-display);font-size:var(--font-size-2xl);font-weight:700;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.sidebar-toggle{background:var(--gradient-primary);border:none;color:var(--color-text-inverse);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-md);transition:all var(--transition-base);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm)}.sidebar-toggle:hover{transform:translateY(-2px) scale(1.05);box-shadow:var(--shadow-md)}.btn{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-4) var(--space-6);border:none;border-radius:var(--radius-lg);font-family:var(--font-primary);font-size:var(--font-size-base);font-weight:600;cursor:pointer;transition:all var(--transition-base);width:100%}.btn-primary{background:var(--gradient-primary);color:var(--color-text-inverse);box-shadow:var(--shadow-sm)}.btn-primary:hover{transform:translateY(-2px) scale(1.02);box-shadow:var(--shadow-primary)}.btn-primary:active{transform:translateY(0) scale(1)}.btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-primary);transform:translateY(-1px)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-small{padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm)}.btn-group{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.control-group{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5);background:var(--color-bg-tertiary);border-radius:var(--radius-lg);border:1px solid var(--color-border-light)}.control-label{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.control-heading{font-size:var(--font-size-lg);font-weight:700;color:var(--color-text-primary);margin-bottom:var(--space-2)}.select-input{padding:var(--space-4);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:var(--font-primary);font-size:var(--font-size-base);cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-xs)}.select-input:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.select-input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2563eb1a}.file-upload-area{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-10);background:var(--color-surface-glass);-webkit-backdrop-filter:var(--blur-md);backdrop-filter:var(--blur-md);border:2px dashed var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);position:relative;overflow:hidden}.file-upload-area:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--gradient-primary);opacity:0;transition:opacity var(--transition-base)}.file-upload-area:hover:before,.file-upload-area.dragging:before{opacity:.05}.file-upload-area:hover,.file-upload-area.dragging{background:var(--color-bg-secondary);border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.file-upload-area svg{color:var(--color-primary);transition:all var(--transition-base);position:relative;z-index:1}.file-upload-area:hover svg,.file-upload-area.dragging svg{color:var(--color-secondary);transform:scale(1.1);animation:float 2s ease-in-out infinite}.file-upload-area p{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:500;position:relative;z-index:1}.file-list{display:flex;flex-direction:column;gap:var(--space-2);max-height:150px;overflow-y:auto}.file-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3);background:var(--color-bg-secondary);border-radius:var(--radius-md);font-size:var(--font-size-sm);border:1px solid var(--color-border);transition:all var(--transition-fast);animation:slideInRight .3s ease-out}.file-item:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.file-item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-primary);font-weight:500}.file-item-remove{background:var(--color-error-light);border:none;color:var(--color-error);cursor:pointer;padding:var(--space-1) var(--space-2);font-size:var(--font-size-lg);line-height:1;border-radius:var(--radius-sm);transition:all var(--transition-fast);font-weight:700}.file-item-remove:hover{background:var(--color-error);color:var(--color-text-inverse);transform:scale(1.1)}.session-info{background:var(--gradient-glass);-webkit-backdrop-filter:var(--blur-md);backdrop-filter:var(--blur-md);padding:var(--space-5);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.info-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) 0;font-size:var(--font-size-sm);border-bottom:1px solid var(--color-border-light)}.info-item:last-child{border-bottom:none}.info-label{color:var(--color-text-secondary);font-weight:500}.info-value{color:var(--color-primary);font-weight:700;font-family:var(--font-mono);font-size:var(--font-size-xs)}.chat-history-list{display:flex;flex-direction:column;gap:var(--space-3);max-height:300px;overflow-y:auto}.history-item{padding:var(--space-4);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base)}.history-item:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.history-domain{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-primary)}.history-count{font-size:var(--font-size-xs);color:var(--color-text-tertiary);background:var(--color-bg-tertiary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)}.history-preview{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-time{display:flex;align-items:center;gap:var(--space-1);font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.uploaded-files-list{display:flex;flex-direction:column;gap:var(--space-2);max-height:200px;overflow-y:auto}.uploaded-file-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast);animation:slideInRight .3s ease-out}.uploaded-file-item:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm);transform:translate(2px)}.file-info{display:flex;align-items:center;gap:var(--space-3);flex:1;min-width:0}.file-icon{color:var(--color-primary);flex-shrink:0}.file-details{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.file-name{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-chunks{font-size:var(--font-size-xs);color:var(--color-text-tertiary);background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:700}.uploaded-file-item .remove-file-btn{background:transparent;border:none;color:var(--color-text-tertiary);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm);transition:all var(--transition-fast);flex-shrink:0}.uploaded-file-item .remove-file-btn:hover{background:var(--color-error-light);color:var(--color-error);transform:scale(1.1)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-8);color:var(--color-text-tertiary);text-align:center}.empty-state p{font-size:var(--font-size-sm);margin:0}@keyframes slideInRight{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@media(max-width:768px){.sidebar{position:fixed;left:0;top:0;bottom:0;width:320px;z-index:100;transform:translate(-100%);box-shadow:var(--shadow-2xl)}.sidebar.open{transform:translate(0)}.sidebar-toggle{display:block}.btn-group{grid-template-columns:1fr}}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
  Theme: GitHub Dark
  Description: Dark theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-dark
  Current colors taken from GitHub's CSS
*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}.chat-area{display:flex;flex-direction:column;flex:1;overflow:hidden}.chat-header{padding:var(--space-6) var(--space-8);background:var(--color-surface);-webkit-backdrop-filter:var(--blur-lg);backdrop-filter:var(--blur-lg);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-xs)}.chat-header-info{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}.domain-badge{padding:var(--space-2) var(--space-4);background:var(--gradient-primary);color:var(--color-text-inverse);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:600;box-shadow:var(--shadow-sm)}.domain-badge:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.model-selector{padding:var(--space-2) var(--space-4);background:var(--color-bg-secondary);border:2px solid var(--color-primary);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-base);outline:none;box-shadow:var(--shadow-sm)}.model-selector:hover{background:var(--color-bg-hover);border-color:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.model-selector:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #8b5cf633}.session-badge{padding:var(--space-2) var(--space-4);background:var(--color-bg-tertiary);color:var(--color-text-tertiary);border-radius:var(--radius-md);font-size:var(--font-size-xs);font-family:var(--font-mono);border:1px solid var(--color-border)}.messages-container{flex:1;overflow-y:auto;overflow-x:hidden;padding:var(--space-8);display:flex;flex-direction:column;gap:var(--space-6);background:var(--gradient-mesh);min-height:0}.welcome-message{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-16);margin:auto}.welcome-icon{font-size:5rem;margin-bottom:var(--space-8);animation:float 3s ease-in-out infinite;filter:drop-shadow(0 4px 12px rgba(37,99,235,.3))}.welcome-message h2{font-family:var(--font-display);font-size:var(--font-size-3xl);font-weight:700;margin-bottom:var(--space-3);color:var(--color-text-primary)}.welcome-message p{color:var(--color-text-secondary);max-width:500px;font-size:var(--font-size-base);line-height:1.7}.message{display:flex;gap:var(--space-4);animation:slideIn .4s ease-out}.message.user{flex-direction:row-reverse}.message-avatar{width:44px;height:44px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xl);flex-shrink:0;box-shadow:var(--shadow-sm)}.message.user .message-avatar{background:var(--gradient-primary)}.message.assistant .message-avatar{background:var(--color-bg-secondary);border:2px solid var(--color-primary)}.message-content{max-width:70%;display:flex;flex-direction:column;gap:var(--space-2)}.message-bubble{padding:var(--space-4) var(--space-6);border-radius:var(--radius-xl);line-height:1.7;word-wrap:break-word;box-shadow:var(--shadow-sm);transition:all var(--transition-base)}.message-bubble:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.message.user .message-bubble{background:var(--gradient-primary);color:var(--color-text-inverse);border-radius:var(--radius-xl) var(--radius-xl) var(--radius-sm) var(--radius-xl);box-shadow:var(--shadow-primary)}.message.assistant .message-bubble{background:var(--color-surface-glass);-webkit-backdrop-filter:var(--blur-md);backdrop-filter:var(--blur-md);border:1px solid rgba(255,255,255,.6);color:var(--color-text-primary);border-radius:var(--radius-xl) var(--radius-xl) var(--radius-xl) var(--radius-sm);box-shadow:var(--shadow-md)}.message-timestamp{font-size:var(--font-size-xs);color:var(--color-text-tertiary);padding:0 var(--space-3);font-weight:500}.message.user .message-timestamp{text-align:right}.message-header{display:flex;align-items:center;margin-bottom:var(--space-1)}.message-domain-badge{font-size:var(--font-size-xs);font-weight:700;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);letter-spacing:.05em}.message.domain-education .message-domain-badge{background:#3b82f6;color:#fff}.message.domain-coding .message-domain-badge{background:#8b5cf6;color:#fff}.message.domain-medical .message-domain-badge{background:#ef4444;color:#fff}.message.domain-legal .message-domain-badge{background:#f59e0b;color:#fff}.message.domain-general .message-domain-badge{background:#6b7280;color:#fff}.message.domain-system .message-domain-badge{background:#f59e0b;color:#fff}.message.system .message-avatar{background:linear-gradient(135deg,#f59e0b,#ef4444);border:2px solid #F59E0B}.message.system .message-bubble{background:linear-gradient(135deg,#f59e0b1a,#ef44441a);border:2px solid #F59E0B;color:var(--color-text-primary)}.system-warning{font-weight:500;line-height:1.6;white-space:pre-wrap}.context-badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--gradient-primary);color:var(--color-text-inverse);border-radius:var(--radius-md);font-size:var(--font-size-xs);font-weight:600;margin-top:var(--space-2);box-shadow:var(--shadow-sm);animation:fadeIn .3s ease-out;width:fit-content}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.chat-header{padding:var(--space-4) var(--space-6)}.messages-container{padding:var(--space-6)}.message-content{max-width:85%}.welcome-message{padding:var(--space-12)}.welcome-icon{font-size:4rem}}.message.assistant .message-bubble h1,.message.assistant .message-bubble h2,.message.assistant .message-bubble h3,.message.assistant .message-bubble h4,.message.assistant .message-bubble h5,.message.assistant .message-bubble h6{margin-top:var(--space-4);margin-bottom:var(--space-3);font-weight:700;color:var(--color-text-primary);line-height:1.3}.message.assistant .message-bubble h1{font-size:var(--font-size-2xl)}.message.assistant .message-bubble h2{font-size:var(--font-size-xl)}.message.assistant .message-bubble h3{font-size:var(--font-size-lg)}.message.assistant .message-bubble h4{font-size:var(--font-size-base)}.message.assistant .message-bubble p{margin-bottom:var(--space-3);line-height:1.7}.message.assistant .message-bubble ul,.message.assistant .message-bubble ol{margin:var(--space-3) 0;padding-left:var(--space-6)}.message.assistant .message-bubble li{margin-bottom:var(--space-2);line-height:1.6}.message.assistant .message-bubble ul li{list-style-type:disc}.message.assistant .message-bubble ol li{list-style-type:decimal}.message.assistant .message-bubble code.inline-code{background:#0000001a;padding:2px 6px;border-radius:4px;font-family:var(--font-mono);font-size:.9em;color:var(--color-text-primary)}.message.assistant .message-bubble pre{background:#1e1e1e;border-radius:var(--radius-md);padding:var(--space-4);margin:var(--space-4) 0;overflow-x:auto;border:1px solid rgba(0,0,0,.2)}.message.assistant .message-bubble pre code{background:transparent;padding:0;font-family:var(--font-mono);font-size:.9em;color:#d4d4d4;line-height:1.5}.message.assistant .message-bubble blockquote{border-left:4px solid var(--color-primary);padding-left:var(--space-4);margin:var(--space-4) 0;color:var(--color-text-secondary);font-style:italic}.message.assistant .message-bubble a{color:var(--color-primary);text-decoration:underline;transition:color var(--transition-fast)}.message.assistant .message-bubble a:hover{color:var(--color-primary-hover)}.message.assistant .message-bubble table{width:100%;border-collapse:collapse;margin:var(--space-4) 0;font-size:.95em}.message.assistant .message-bubble table th,.message.assistant .message-bubble table td{border:1px solid rgba(0,0,0,.15);padding:var(--space-2) var(--space-3);text-align:left}.message.assistant .message-bubble table th{background:#0000000d;font-weight:600}.message.assistant .message-bubble table tr:nth-child(2n){background:#00000005}.message.assistant .message-bubble hr{border:none;border-top:1px solid rgba(0,0,0,.1);margin:var(--space-4) 0}.message.assistant .message-bubble strong{font-weight:700}.message.assistant .message-bubble em{font-style:italic}.message.assistant .message-bubble img{max-width:100%;border-radius:var(--radius-md);margin:var(--space-3) 0}.input-area{padding:var(--space-8);background:var(--color-surface);-webkit-backdrop-filter:var(--blur-lg);backdrop-filter:var(--blur-lg);border-top:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.file-preview-container{display:flex;gap:var(--space-3);padding:var(--space-4);background:var(--color-bg-tertiary);border-radius:var(--radius-lg);margin-bottom:var(--space-4);flex-wrap:wrap;max-height:200px;overflow-y:auto}.file-preview-item{position:relative}.image-preview{position:relative;width:100px;height:100px;border-radius:var(--radius-md);overflow:hidden;border:2px solid var(--color-border);transition:all var(--transition-base)}.image-preview:hover{border-color:var(--color-primary);transform:scale(1.05)}.image-preview img{width:100%;height:100%;object-fit:cover}.document-preview{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-base);max-width:200px}.document-preview:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.file-name{font-size:var(--font-size-sm);color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.remove-file-btn{position:absolute;top:4px;right:4px;background:var(--color-error);color:var(--color-text-inverse);border:none;border-radius:var(--radius-full);width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-sm)}.remove-file-btn:hover{transform:scale(1.1);box-shadow:var(--shadow-md)}.document-preview .remove-file-btn{position:relative;top:auto;right:auto;margin-left:auto}.input-container{display:flex;gap:var(--space-3);align-items:flex-end;background:var(--color-bg-secondary);border:2px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-4);transition:all var(--transition-base);box-shadow:var(--shadow-xs)}.input-container:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 4px #2563eb1a,var(--shadow-sm);transform:translateY(-2px)}.message-input{flex:1;background:transparent;border:none;color:var(--color-text-primary);font-family:var(--font-primary);font-size:18px;resize:none;outline:none;max-height:150px;line-height:1.6;min-height:28px;padding:6px 0;display:flex;align-items:center}.message-input::placeholder{color:var(--color-text-muted);font-weight:400}.input-actions{display:flex;gap:var(--space-2);align-items:center}.action-btn{background:var(--color-bg-tertiary);border:1px solid var(--color-border);width:44px;height:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text-secondary);transition:all var(--transition-base)}.action-btn:hover{background:var(--color-bg-hover);color:var(--color-primary);border-color:var(--color-primary);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.action-btn:active{transform:translateY(0)}.action-btn.recording{background:var(--color-error-light);color:var(--color-error);border-color:var(--color-error);animation:micPulse 1.5s ease-in-out infinite}.send-btn{background:var(--gradient-primary);border:none;width:52px;height:52px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-base);color:var(--color-text-inverse);box-shadow:var(--shadow-primary);position:relative;overflow:hidden}.send-btn:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%);transition:width .6s,height .6s}.send-btn:hover:before{width:300px;height:300px}.send-btn:hover{transform:translateY(-3px) scale(1.05);box-shadow:var(--shadow-lg),var(--shadow-glow)}.send-btn:active{transform:translateY(-1px) scale(1.02)}.send-btn svg{position:relative;z-index:1}.typing-indicator{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:500}.typing-indicator .dot{width:8px;height:8px;background:var(--gradient-primary);border-radius:var(--radius-full);animation:typingDot 1.4s infinite;box-shadow:0 2px 4px #2563eb4d}.typing-indicator .dot:nth-child(2){animation-delay:.2s}.typing-indicator .dot:nth-child(3){animation-delay:.4s}.typing-text{margin-left:var(--space-2)}.settings-panel{margin-top:var(--space-4);padding:var(--space-6);background:var(--color-surface-glass);-webkit-backdrop-filter:var(--blur-md);backdrop-filter:var(--blur-md);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);animation:slideIn .3s ease-out;max-height:400px;overflow-y:auto}.settings-panel h4{font-size:var(--font-size-lg);font-weight:700;color:var(--color-text-primary);margin-bottom:var(--space-5);padding-bottom:var(--space-3);border-bottom:2px solid var(--color-border)}.setting-item{padding:var(--space-4) 0;border-bottom:1px solid var(--color-border-light)}.setting-item:last-child{border-bottom:none}.setting-label{display:block;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:600;margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:.05em}.setting-checkbox{display:flex;align-items:center;gap:var(--space-3);cursor:pointer;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:500}.setting-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--color-primary)}.theme-toggle{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all var(--transition-base);width:100%;justify-content:center}.theme-toggle:hover{background:var(--color-bg-hover);border-color:var(--color-primary);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.font-slider{width:100%;height:6px;border-radius:var(--radius-full);background:var(--color-bg-tertiary);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.font-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:var(--radius-full);background:var(--gradient-primary);cursor:pointer;box-shadow:var(--shadow-sm);transition:all var(--transition-fast)}.font-slider::-webkit-slider-thumb:hover{transform:scale(1.2);box-shadow:var(--shadow-primary)}.font-slider::-moz-range-thumb{width:20px;height:20px;border-radius:var(--radius-full);background:var(--gradient-primary);cursor:pointer;border:none;box-shadow:var(--shadow-sm);transition:all var(--transition-fast)}.font-slider::-moz-range-thumb:hover{transform:scale(1.2);box-shadow:var(--shadow-primary)}@media(max-width:768px){.input-area{padding:var(--space-6)}.action-btn{width:40px;height:40px}.send-btn{width:48px;height:48px}}.toast{position:fixed;top:var(--space-8);left:50%;transform:translate(-50%,-120%);padding:var(--space-4) var(--space-6);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:600;transition:transform var(--transition-base);z-index:1000;max-width:400px;-webkit-backdrop-filter:var(--blur-md);backdrop-filter:var(--blur-md)}.toast.show{transform:translate(-50%);animation:slideInDown .4s ease-out}@keyframes slideInDown{0%{transform:translate(-50%,-120%);opacity:0}to{transform:translate(-50%);opacity:1}}.toast.success{border-color:var(--color-success);background:linear-gradient(135deg,var(--color-bg-secondary) 0%,var(--color-success-light) 100%);box-shadow:var(--shadow-accent)}.toast.error{border-color:var(--color-error);background:linear-gradient(135deg,var(--color-bg-secondary) 0%,var(--color-error-light) 100%);box-shadow:0 4px 20px #ef444440}.toast.warning{border-color:var(--color-warning);background:linear-gradient(135deg,var(--color-bg-secondary) 0%,var(--color-warning-light) 100%);box-shadow:0 4px 20px #f59e0b40}@media(max-width:768px){.toast{top:var(--space-6);left:var(--space-6);right:var(--space-6);max-width:none;transform:translateY(-120%)}.toast.show{transform:translate(0)}@keyframes slideInDown{0%{transform:translateY(-120%);opacity:0}to{transform:translate(0);opacity:1}}}.app-container{display:flex;flex-direction:column;height:100vh;overflow:hidden;background:var(--color-bg-primary)}.main-layout{display:grid;grid-template-columns:320px 1fr;flex:1;overflow:hidden;transition:grid-template-columns var(--transition-base)}.main-layout.sidebar-hidden{grid-template-columns:0px 1fr}.chat-container{display:flex;flex-direction:column;height:100%;background:transparent;overflow:hidden}.sidebar-edge-toggle{position:fixed;left:320px;top:50%;transform:translateY(-50%);background:var(--gradient-primary);border:none;color:var(--color-text-inverse);cursor:pointer;padding:var(--space-3) var(--space-2);border-radius:0 var(--radius-lg) var(--radius-lg) 0;transition:left var(--transition-base),transform var(--transition-fast),box-shadow var(--transition-fast);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);z-index:1000;font-size:var(--font-size-lg);font-weight:700}.sidebar-edge-toggle.closed{left:0}.sidebar-edge-toggle:hover{box-shadow:var(--shadow-primary);transform:translateY(-50%) scale(1.15)}.sidebar-edge-toggle:active{transform:translateY(-50%) scale(1)}@media(max-width:1024px){.main-layout{grid-template-columns:280px 1fr}.sidebar-edge-toggle{left:280px}}@media(max-width:768px){.main-layout{grid-template-columns:1fr}}
