html,body,#root{width:100%;height:100%;margin:0;padding:0}.sidebar{width:var(--sidebar-width);height:100vh;background-color:var(--bg-white);border-right:1px solid var(--border-color);display:flex;flex-direction:column;position:fixed;left:0;top:0;z-index:999;transition:transform .3s ease}.sidebar.mobile{width:280px;transform:translate(-100%)}.sidebar.mobile.visible{transform:translate(0)}.sidebar.mobile.hidden{transform:translate(-100%)}.sidebar:not(.mobile){position:relative;transform:none!important}.sidebar-header{padding:20px 16px;border-bottom:1px solid var(--border-color);display:flex;justify-content:center;align-items:center;position:relative}.close-btn{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:32px;height:32px;border:none;background:none;font-size:20px;color:var(--text-hint);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s}.close-btn:hover{background-color:var(--bg-hover);color:var(--text-primary)}.new-chat-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background-color:var(--primary-color);color:#fff;border:none;border-radius:24px;cursor:pointer;font-size:14px;font-weight:500;transition:background-color .2s}.new-chat-btn:hover{background-color:#252d5c}.new-chat-btn .icon{font-size:16px}.sidebar-content{flex:1;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:20px 16px}.loading-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:40px 20px}.loading-spinner{width:24px;height:24px;border:2px solid var(--border-color);border-top:2px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:12px}.loading-text{font-size:12px;color:var(--text-hint)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.session-list{display:flex;flex-direction:column;gap:4px}.session-item{display:flex;align-items:flex-start;padding:12px;border-radius:8px;cursor:pointer;transition:background-color .2s;position:relative}.session-item:hover{background-color:var(--bg-hover)}.session-item.active{background-color:var(--primary-light)}.session-content{flex:1;min-width:0}.session-title{font-size:14px;font-weight:500;color:var(--text-primary);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-meta{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--text-hint)}.message-count{font-weight:500}.session-date{font-weight:400}.session-actions{position:relative;margin-left:8px}.menu-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:none;border-radius:4px;cursor:pointer;color:var(--text-hint);transition:all .2s}.menu-btn:hover{background-color:var(--bg-hover);color:var(--text-primary)}.menu-btn .icon{font-size:12px}.session-menu{position:absolute;top:100%;right:0;background:var(--bg-white);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #0000001a;z-index:10;min-width:120px;overflow:hidden}.menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:none;cursor:pointer;font-size:13px;color:var(--text-primary);transition:background-color .2s}.menu-item:hover{background-color:var(--bg-hover)}.menu-item.delete{color:var(--error-color)}.menu-item .icon{font-size:12px}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:60px 20px}.empty-state .icon{font-size:28px;color:var(--secondary-color);margin-bottom:16px}.empty-state .title{font-size:14px;color:var(--link-color);margin-bottom:8px;font-weight:500}.empty-state .subtitle{font-size:12px;color:var(--text-hint)}.notification-section{padding:16px;border-top:1px solid var(--border-color)}.section-title{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:20px;text-align:center}.notification-empty{display:flex;flex-direction:column;align-items:center;padding:20px;text-align:center}.notification-empty .icon{font-size:28px;color:var(--secondary-color);margin-bottom:12px}.notification-empty .text{font-size:12px;color:var(--link-color)}.chat-input-wrapper{display:flex;align-items:center;position:relative;width:100%;cursor:text}.chat-input-wrapper.resize-hover{cursor:row-resize}.chat-input-wrapper.resizing{cursor:row-resize;-webkit-user-select:none;user-select:none}.resize-handle{position:absolute;top:0;left:0;right:0;height:8px;cursor:row-resize;z-index:10}.chat-input-wrapper:not(.resize-hover):not(.resizing) .resize-handle{cursor:text}.chat-input{width:100%;min-height:120px;max-height:400px;padding:12px 50px 12px 16px;border:5px solid var(--border-color);border-radius:24px;background:var(--input-bg);color:var(--text-primary);font-size:14px;line-height:1.4;resize:none;outline:none;transition:all .2s ease;font-family:inherit;overflow-y:auto}.chat-input:focus{border-color:var(--accent-color);box-shadow:0 0 0 2px #3b82f61a}.chat-input:disabled{opacity:.6;cursor:not-allowed}.chat-input::placeholder{color:var(--text-secondary);opacity:.7}.send-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:none;border-radius:50%;background:var(--accent-color);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;flex-shrink:0}.send-btn:hover:not(:disabled){background:#2563eb;transform:translateY(-50%) scale(1.05)}.send-btn:active:not(:disabled){transform:translateY(-50%) scale(.95)}.send-btn:disabled{background:var(--border-color);cursor:not-allowed;opacity:.6}.send-btn .icon{width:16px;height:16px;color:#000}@media(max-width:768px){.chat-input-wrapper{margin-bottom:calc(var(--bottom-nav-height) + 3px);padding:0 16px}.chat-input{min-height:120px;padding:12px 46px 12px 14px}.send-btn{width:32px;height:32px;right:22px;bottom:3px}.send-btn .icon{width:14px;height:14px}}.chat-area{flex:1;display:flex;flex-direction:column;height:calc(100vh - var(--bottom-nav-height));background-color:var(--bg-white);position:relative;width:100%;padding-bottom:env(safe-area-inset-bottom,0)}.chat-area.mobile{margin-left:0;padding-bottom:0}.chat-area.mobile .chat-messages{padding-bottom:150px;min-height:calc(100vh - var(--bottom-nav-height) - 150px)}@media(max-width:768px){.chat-area{margin-left:0}.chat-messages{padding:16px}.message-content-wrapper{max-width:100%}.message-content{overflow-wrap:break-word;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;padding:10px 14px;font-size:14px}.message-content pre{max-width:100%;overflow-x:auto;font-size:12px;padding:8px}.message-content table{font-size:12px}.message-content th,.message-content td{padding:4px 6px}.message-avatar{width:32px;height:32px;font-size:12px}}.chat-messages{flex:1;overflow-y:auto;padding:20px}.message{display:flex;margin-bottom:20px;max-width:100%}.message-user{justify-content:flex-end}.message-assistant{justify-content:flex-start}.message-content-wrapper{display:flex;align-items:flex-start;gap:12px;max-width:80%;width:100%}.message-user .message-content-wrapper{flex-direction:row-reverse}.message-avatar{width:40px;height:40px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:500;color:#fff}.message-user .message-avatar{background-color:#767c96}.message-assistant .message-avatar{background-color:#28a745}.message-content-area{display:flex;flex-direction:column;gap:4px}.message-content{padding:12px 16px;border-radius:18px;font-size:15px;line-height:1.4;word-wrap:break-word;max-width:100%;box-sizing:border-box;overflow:hidden}.message-user .message-content{background-color:#767c96;color:#fff;border-bottom-right-radius:4px}.message-assistant .message-content{background-color:#f1f3f5;color:#333;border-bottom-left-radius:4px}.message-timestamp{font-size:12px;color:#6c757d;padding:0 8px}.message-user .message-timestamp{text-align:right}.message-assistant .message-timestamp{text-align:left}.message-content.loading{color:#6c757d;font-style:italic}.message-content{white-space:pre-wrap;word-wrap:break-word}.message-content pre{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;padding:12px;margin:8px 0;overflow-x:auto;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.4;max-width:100%;box-sizing:border-box}.message-content code{background-color:#f8f9fa;padding:2px 4px;border-radius:3px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px}.message-content pre code{background:none;padding:0;border-radius:0}.message-content table{border-collapse:collapse;width:100%;margin:8px 0}.message-content th,.message-content td{border:1px solid #dee2e6;padding:8px 12px;text-align:left}.message-content th{background-color:#f8f9fa;font-weight:600}.message-content blockquote{border-left:4px solid #007bff;margin:8px 0;padding-left:16px;color:#6c757d;font-style:italic}.message-content ul,.message-content ol{margin:8px 0;padding-left:24px}.message-content li{margin:4px 0}.message-content a{color:#007bff;text-decoration:none}.message-content a:hover{text-decoration:underline}.message-content h1,.message-content h2,.message-content h3,.message-content h4,.message-content h5,.message-content h6{margin:16px 0 8px;font-weight:600;line-height:1.2}.message-content h1{font-size:1.5em}.message-content h2{font-size:1.3em}.message-content h3{font-size:1.2em}.message-content h4{font-size:1.1em}.message-content h5{font-size:1em}.message-content h6{font-size:.9em}.message-content hr{border:none;border-top:1px solid #dee2e6;margin:16px 0}.message-user .message-content pre,.message-user .message-content code,.message-user .message-content table,.message-user .message-content blockquote,.message-user .message-content ul,.message-user .message-content ol,.message-user .message-content a,.message-user .message-content h1,.message-user .message-content h2,.message-user .message-content h3,.message-user .message-content h4,.message-user .message-content h5,.message-user .message-content h6,.message-user .message-content hr{all:unset;white-space:pre-wrap;word-wrap:break-word}.error-toast{position:fixed;top:70px;left:50%;transform:translate(-50%);z-index:1000;background-color:#dc3545;color:#fff;padding:12px 20px;border-radius:8px;display:flex;align-items:center;gap:10px;box-shadow:0 4px 12px #0003;cursor:pointer;max-width:90%;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translate(-50%) translateY(-20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.error-toast .error-icon{font-size:18px}.error-toast .error-text{flex:1;font-size:14px}.error-toast .error-close{font-size:18px;font-weight:700;cursor:pointer;opacity:.8}.error-toast .error-close:hover{opacity:1}@media(max-width:768px){.error-toast{top:60px;padding:10px 16px;font-size:13px}}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:var(--bottom-nav-height);background-color:var(--bg-white);border-top:1px solid var(--border-color);display:flex;justify-content:center;align-items:center;z-index:100}.bottom-nav.mobile{justify-content:space-between;padding:0 16px}.sidebar-toggle-btn{display:flex;align-items:center;justify-content:center;padding:8px;cursor:pointer;transition:all .2s;color:var(--secondary-color);border:none;background:none;border-radius:8px;width:40px;height:40px}.sidebar-toggle-btn:hover{color:var(--primary-color);background-color:var(--bg-hover)}.sidebar-toggle-btn .icon{font-size:20px}.nav-list{display:flex;align-items:center;gap:8px;list-style:none;margin:0;padding:0}.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 24px;cursor:pointer;transition:all .2s;color:var(--secondary-color);text-decoration:none;border-radius:24px}.nav-item:hover{color:var(--primary-color)}.nav-item.active{color:#fff;background-color:var(--primary-color)}.nav-item .icon{font-size:18px;margin-bottom:4px}.nav-item .label{font-size:12px;white-space:nowrap}@media(max-width:768px){.bottom-nav{justify-content:space-between;padding:0 16px}.nav-list{gap:4px}.nav-item{padding:8px 12px}.sidebar-toggle-btn{display:flex}}@media(min-width:769px){.sidebar-toggle-btn{display:none}}.app-layout{display:flex;height:100vh;position:relative;overflow:hidden}.app-layout.mobile{flex-direction:column}.sidebar-overlay{position:fixed;inset:0;background-color:#00000080;z-index:998;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.sidebar-overlay.active{opacity:1;visibility:visible}@media(max-width:768px){.app-layout{flex-direction:column}.app-layout.mobile .chat-area{width:100%;margin-left:0}}@media(min-width:769px){.app-layout{flex-direction:row}.sidebar-overlay{display:none}}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:400px;padding:2rem;background-color:#f8f9fa;border-radius:8px;border:1px solid #e9ecef}.error-boundary-content{text-align:center;max-width:500px;width:100%}.error-boundary-icon{font-size:4rem;margin-bottom:1rem;opacity:.7}.error-boundary-title{font-size:1.5rem;font-weight:600;color:#dc3545;margin-bottom:1rem}.error-boundary-message{font-size:1rem;color:#6c757d;margin-bottom:2rem;line-height:1.5}.error-boundary-details{margin-bottom:2rem;text-align:left}.error-boundary-details summary{cursor:pointer;font-weight:600;color:#495057;margin-bottom:.5rem;padding:.5rem;background-color:#f8f9fa;border-radius:4px;border:1px solid #dee2e6}.error-boundary-details summary:hover{background-color:#e9ecef}.error-boundary-error,.error-boundary-stack,.error-boundary-component-stack{margin-bottom:1rem;padding:1rem;background-color:#fff;border-radius:4px;border:1px solid #dee2e6}.error-boundary-error strong,.error-boundary-stack strong,.error-boundary-component-stack strong{display:block;margin-bottom:.5rem;color:#495057}.error-boundary-stack pre,.error-boundary-component-stack pre{white-space:pre-wrap;word-wrap:break-word;font-family:Courier New,monospace;font-size:.875rem;color:#dc3545;background-color:#f8f9fa;padding:.75rem;border-radius:4px;border:1px solid #e9ecef;max-height:200px;overflow-y:auto}.error-boundary-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.error-boundary-retry-btn,.error-boundary-refresh-btn{padding:.75rem 1.5rem;border:none;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease-in-out}.error-boundary-retry-btn{background-color:#007bff;color:#fff}.error-boundary-retry-btn:hover{background-color:#0056b3;transform:translateY(-1px)}.error-boundary-refresh-btn{background-color:#6c757d;color:#fff}.error-boundary-refresh-btn:hover{background-color:#545b62;transform:translateY(-1px)}.error-boundary-retry-btn:active,.error-boundary-refresh-btn:active{transform:translateY(0)}@media(max-width:768px){.error-boundary{padding:1rem;min-height:300px}.error-boundary-icon{font-size:3rem}.error-boundary-title{font-size:1.25rem}.error-boundary-message{font-size:.9rem}.error-boundary-actions{flex-direction:column;gap:.5rem}.error-boundary-retry-btn,.error-boundary-refresh-btn{width:100%}}@media(prefers-color-scheme:dark){.error-boundary{background-color:#2d3748;border-color:#4a5568}.error-boundary-title{color:#fc8181}.error-boundary-message{color:#a0aec0}.error-boundary-details summary{background-color:#2d3748;border-color:#4a5568;color:#e2e8f0}.error-boundary-details summary:hover{background-color:#4a5568}.error-boundary-error,.error-boundary-stack,.error-boundary-component-stack{background-color:#1a202c;border-color:#4a5568}.error-boundary-error strong,.error-boundary-stack strong,.error-boundary-component-stack strong{color:#e2e8f0}.error-boundary-stack pre,.error-boundary-component-stack pre{background-color:#2d3748;border-color:#4a5568;color:#fc8181}}:root{--primary-color: #1c2550;--secondary-color: #767c96;--bg-white: #ffffff;--bg-light: #f5f7fa;--bg-sidebar: #ffffff;--border-color: #e8eaed;--text-primary: #1c2550;--text-secondary: #767c96;--text-hint: #a0a5b8;--link-color: #4a90d9;--sidebar-width: 260px;--bottom-nav-height: 60px;--input-height: 48px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;color:var(--text-primary);background-color:var(--bg-light)}
