.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--border-radius);font-family:inherit;font-weight:500;text-decoration:none;cursor:pointer;transition:all var(--transition-fast);position:relative;border:1px solid transparent;white-space:nowrap}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn-primary{background-color:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.btn-primary:hover:not(.btn-disabled):not(.btn-loading){background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-secondary{background-color:var(--color-surface);color:var(--color-text-primary);border-color:var(--color-border)}.btn-secondary:hover:not(.btn-disabled):not(.btn-loading){background-color:var(--color-surface-hover);border-color:var(--color-border)}.btn-ghost{background-color:transparent;color:var(--color-text-secondary);border-color:transparent}.btn-ghost:hover:not(.btn-disabled):not(.btn-loading){background-color:var(--color-surface-hover);color:var(--color-text-primary)}.btn-danger{background-color:var(--color-error);color:var(--color-text-inverse);border-color:var(--color-error)}.btn-danger:hover:not(.btn-disabled):not(.btn-loading){background-color:#dc2626;border-color:#dc2626}.btn-xs{padding:var(--spacing-xs) var(--spacing-sm);font-size:.75rem;min-height:1.5rem}.btn-sm{padding:var(--spacing-sm) var(--spacing-md);font-size:.875rem;min-height:2rem}.btn-md{padding:var(--spacing-sm) var(--spacing-lg);font-size:.875rem;min-height:2.5rem}.btn-lg{padding:var(--spacing-md) var(--spacing-xl);font-size:1rem;min-height:3rem}.btn-disabled{opacity:.5;cursor:not-allowed}.btn-loading{cursor:not-allowed}.btn-content{display:flex;align-items:center;gap:var(--spacing-xs);transition:opacity var(--transition-fast)}.btn-content-loading{opacity:0}.btn-spinner{position:absolute;width:1rem;height:1rem;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:btn-spin 1s linear infinite}@keyframes btn-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn-icon{padding:var(--spacing-sm);width:2.5rem;height:2.5rem}.btn-icon.btn-sm{width:2rem;height:2rem;padding:var(--spacing-xs)}.btn-icon.btn-lg{width:3rem;height:3rem;padding:var(--spacing-md)}.header{height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding:0 var(--spacing-md);background-color:var(--color-surface);border-bottom:1px solid var(--color-border);position:relative;z-index:1000}.header-left{display:flex;align-items:center;gap:var(--spacing-md)}.header-menu-btn{display:flex;align-items:center;justify-content:center}.header-logo{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--color-text-primary)}.header-title{font-size:1.125rem;font-weight:600;color:var(--color-text-primary)}.header-right{display:flex;align-items:center;gap:var(--spacing-sm)}.header-clear-btn{font-size:.875rem;font-weight:500}.header-theme-btn{display:flex;align-items:center;justify-content:center}@media (max-width: 768px){.header{padding:0 var(--spacing-sm)}.header-title,.header-clear-btn{display:none}.header-left{gap:var(--spacing-sm)}}.sidebar{width:var(--sidebar-width);background-color:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;position:relative;transition:transform var(--transition-normal),width var(--transition-normal);z-index:1000}.sidebar-closed{transform:translate(-100%);width:0}.sidebar-open{transform:translate(0)}.sidebar-header{padding:var(--spacing-md);border-bottom:1px solid var(--color-border-light)}.sidebar-new-chat-btn{width:100%;justify-content:flex-start;gap:var(--spacing-sm)}.sidebar-content{flex:1;overflow-y:auto;padding:var(--spacing-md)}.sidebar-section{margin-bottom:var(--spacing-xl)}.sidebar-section-title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-tertiary);margin-bottom:var(--spacing-sm)}.sidebar-conversations{display:flex;flex-direction:column;gap:var(--spacing-xs)}.sidebar-conversation-item{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-sm);border-radius:var(--border-radius);background:none;border:none;cursor:pointer;transition:background-color var(--transition-fast);text-align:left;width:100%}.sidebar-conversation-item:hover{background-color:var(--color-background-secondary)}.conversation-icon{color:var(--color-text-tertiary);margin-top:2px;flex-shrink:0}.conversation-content{flex:1;min-width:0}.conversation-title{font-size:.875rem;color:var(--color-text-primary);font-weight:500;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:2px}.conversation-time{font-size:.75rem;color:var(--color-text-tertiary)}.sidebar-footer{padding:var(--spacing-md);border-top:1px solid var(--color-border-light);display:flex;flex-direction:column;gap:var(--spacing-xs)}.sidebar-footer-btn{justify-content:flex-start;gap:var(--spacing-sm);width:100%}@media (max-width: 768px){.sidebar{position:fixed;top:var(--header-height);left:0;bottom:0;width:var(--sidebar-width);z-index:1001}.sidebar-closed{width:var(--sidebar-width);transform:translate(-100%)}.sidebar-footer-btn{padding:var(--spacing-sm)}}.message{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-xl);animation:slideUp var(--transition-normal) ease-out}.message-avatar{width:2rem;height:2rem;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:var(--spacing-xs)}.message-user .message-avatar{background-color:var(--color-primary);color:var(--color-text-inverse)}.message-assistant .message-avatar{background-color:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-border)}.message-error .message-avatar{background-color:var(--color-error);color:var(--color-text-inverse)}.message-content{flex:1;min-width:0}.message-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs)}.message-author{font-size:.875rem;font-weight:600;color:var(--color-text-primary)}.message-time{font-size:.75rem;color:var(--color-text-tertiary)}.message-text{color:var(--color-text-secondary);line-height:1.6;font-size:.875rem}.message-paragraph{margin-bottom:var(--spacing-sm)}.message-paragraph:last-child{margin-bottom:0}.message-user{flex-direction:row-reverse}.message-user .message-content{text-align:right}.message-user .message-header{flex-direction:row-reverse}.message-user .message-text{background-color:var(--color-primary);color:var(--color-text-inverse);padding:var(--spacing-md);border-radius:var(--border-radius-lg);border-bottom-right-radius:var(--border-radius-sm)}.message-assistant .message-text{background-color:var(--color-surface);color:var(--color-text-secondary);padding:var(--spacing-md);border-radius:var(--border-radius-lg);border-bottom-left-radius:var(--border-radius-sm);border:1px solid var(--color-border-light)}.message-error .message-text{background-color:#ef44441a;color:var(--color-error);padding:var(--spacing-md);border-radius:var(--border-radius-lg);border:1px solid rgba(239,68,68,.2)}@media (max-width: 768px){.message{gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.message-avatar{width:1.75rem;height:1.75rem}.message-text{font-size:.875rem}}.loading-message{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-xl);animation:slideUp var(--transition-normal) ease-out}.loading-message .message-avatar{width:2rem;height:2rem;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:var(--spacing-xs);background-color:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-border)}.loading-message .message-content{flex:1;min-width:0}.loading-message .message-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs)}.loading-message .message-author{font-size:.875rem;font-weight:600;color:var(--color-text-primary)}.loading-message .message-time{font-size:.75rem;color:var(--color-text-tertiary)}.loading-content{background-color:var(--color-surface);padding:var(--spacing-md);border-radius:var(--border-radius-lg);border-bottom-left-radius:var(--border-radius-sm);border:1px solid var(--color-border-light);display:flex;align-items:center;gap:var(--spacing-md)}.loading-dots{display:flex;gap:var(--spacing-xs)}.loading-dot{width:6px;height:6px;border-radius:50%;background-color:var(--color-text-tertiary);animation:loadingPulse 1.4s infinite ease-in-out}.loading-dot:nth-child(1){animation-delay:-.32s}.loading-dot:nth-child(2){animation-delay:-.16s}.loading-text{font-size:.875rem;color:var(--color-text-tertiary);font-style:italic}@keyframes loadingPulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}@media (max-width: 768px){.loading-message{gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.loading-message .message-avatar{width:1.75rem;height:1.75rem}}.message-list{width:100%;height:100%;padding:0 var(--spacing-md)}.message-list-content{max-width:48rem;margin:0 auto;padding:var(--spacing-lg) 0}@media (max-width: 768px){.message-list{padding:0 var(--spacing-sm)}.message-list-content{padding:var(--spacing-md) 0}}.message-input-container{padding:var(--spacing-md);background-color:var(--color-background);border-top:1px solid var(--color-border-light)}.message-input-wrapper{max-width:48rem;margin:0 auto}.message-input-form{width:100%}.message-input-field{position:relative;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--spacing-md);display:flex;align-items:flex-end;gap:var(--spacing-sm);transition:border-color var(--transition-fast)}.message-input-field:focus-within{border-color:var(--color-primary)}.message-textarea{flex:1;background:none;border:none;outline:none;resize:none;font-size:.875rem;line-height:1.5;color:var(--color-text-primary);font-family:inherit;min-height:1.5rem;max-height:200px}.message-textarea::placeholder{color:var(--color-text-tertiary)}.message-textarea:disabled{opacity:.6;cursor:not-allowed}.message-input-actions{display:flex;align-items:center;gap:var(--spacing-xs)}.message-send-btn{color:var(--color-primary);padding:var(--spacing-xs);border-radius:var(--border-radius);transition:all var(--transition-fast)}.message-send-btn:hover:not(:disabled){background-color:var(--color-primary);color:var(--color-text-inverse)}.message-send-btn:disabled{color:var(--color-text-tertiary);cursor:not-allowed}.message-stop-btn{color:var(--color-error);padding:var(--spacing-xs);border-radius:var(--border-radius)}.message-stop-btn:hover{background-color:var(--color-error);color:var(--color-text-inverse)}.message-input-footer{margin-top:var(--spacing-sm);text-align:center}.message-input-hint{font-size:.75rem;color:var(--color-text-tertiary)}@media (max-width: 768px){.message-input-container,.message-input-field{padding:var(--spacing-sm)}.message-input-hint{display:none}}.chat-area{flex:1;display:flex;flex-direction:column;background-color:var(--color-background);position:relative;min-width:0}.chat-messages-container{flex:1;overflow-y:auto;padding:var(--spacing-md) 0}.chat-welcome{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl)}.welcome-content{max-width:48rem;text-align:center;animation:fadeIn var(--transition-normal) ease-in-out}.welcome-title{font-size:2rem;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-md);line-height:1.3}.welcome-subtitle{font-size:1.125rem;color:var(--color-text-secondary);margin-bottom:var(--spacing-2xl);line-height:1.6;max-width:42rem;margin-left:auto;margin-right:auto}.welcome-suggestions{display:flex;flex-direction:column;gap:var(--spacing-xl)}.suggestion-category h3{font-size:1rem;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-lg)}.suggestion-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-md)}.suggestion-item{padding:var(--spacing-lg);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);cursor:pointer;transition:all var(--transition-fast);text-align:left;font-size:.875rem;color:var(--color-text-secondary);font-weight:500}.suggestion-item:hover{background-color:var(--color-surface-hover);border-color:var(--color-primary);color:var(--color-text-primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}@media (max-width: 768px){.chat-welcome{padding:var(--spacing-lg) var(--spacing-md)}.welcome-title{font-size:1.75rem}.welcome-subtitle{font-size:1rem;margin-bottom:var(--spacing-xl)}.suggestion-list{grid-template-columns:1fr;gap:var(--spacing-sm)}.suggestion-item{padding:var(--spacing-md)}.chat-messages-container{padding:var(--spacing-sm) 0}}.layout{height:100vh;display:flex;flex-direction:column;background-color:var(--color-background);overflow:hidden}.layout-body{flex:1;display:flex;position:relative;min-height:0}.layout-overlay{position:fixed;top:var(--header-height);left:0;right:0;bottom:0;background-color:#00000080;z-index:999;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--transition-fast)}@media (max-width: 768px){.layout-body{position:relative}.layout-overlay{top:var(--header-height)}}*{margin:0;padding:0;box-sizing:border-box}:root{--color-primary: #10a37f;--color-primary-hover: #0d8f6f;--color-secondary: #8e8ea0;--color-background: #ffffff;--color-background-secondary: #f7f7f8;--color-background-tertiary: #f0f0f0;--color-surface: #ffffff;--color-surface-hover: #f5f5f5;--color-border: #e5e7eb;--color-border-light: #f0f0f0;--color-text-primary: #2d3748;--color-text-secondary: #565869;--color-text-tertiary: #8e8ea0;--color-text-inverse: #ffffff;--color-success: #10a37f;--color-error: #ef4444;--color-warning: #f59e0b;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--font-family-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;--font-family-mono: "SF Mono", Monaco, Inconsolata, "Roboto Mono", Consolas, "Courier New", monospace;--header-height: 3.5rem;--sidebar-width: 260px;--sidebar-width-collapsed: 0px;--border-radius: .5rem;--border-radius-sm: .25rem;--border-radius-lg: .75rem;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--transition-fast: .15s ease-in-out;--transition-normal: .25s ease-in-out;--transition-slow: .35s ease-in-out}[data-theme=dark]{--color-background: #212121;--color-background-secondary: #2f2f2f;--color-background-tertiary: #3f3f3f;--color-surface: #2f2f2f;--color-surface-hover: #3f3f3f;--color-border: #4a4a4a;--color-border-light: #3f3f3f;--color-text-primary: #ffffff;--color-text-secondary: #d1d5db;--color-text-tertiary: #9ca3af;--color-text-inverse: #2d3748}body{font-family:var(--font-family-sans);line-height:1.6;color:var(--color-text-primary);background-color:var(--color-background);font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}#root{min-height:100vh;width:100%}h1,h2,h3,h4,h5,h6{color:var(--color-text-primary);font-weight:600;line-height:1.4}p{color:var(--color-text-secondary);line-height:1.6}button{border:none;background:none;font-family:inherit;cursor:pointer;padding:0;margin:0}input,textarea{font-family:inherit;font-size:inherit;line-height:inherit;border:none;outline:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.animate-fade-in{animation:fadeIn var(--transition-normal) ease-in-out}.animate-slide-up{animation:slideUp var(--transition-normal) ease-out}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@media (max-width: 768px){:root{--sidebar-width: 280px;--sidebar-width-collapsed: 0px;--header-height: 3rem}body{font-size:16px}}
