:root{--primary-color: #A78BFA;--primary-hover: #C4B5FD;--primary-dark: #8B5CF6;--secondary-color: #6D28D9;--background: #1a1a1a;--hover-bg: #2a2a2a;--bg-primary: #1a1a1a;--bg-secondary: #252525;--bg-tertiary: #2a2a2a;--text-primary: #E5E7EB;--text-secondary: #9CA3AF;--border-color: #374151;--border-light: #4B5563;--success-color: #10B981;--error-color: #EF4444;--warning-color: #F59E0B}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;width:100%;overflow:hidden}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text-primary);background:var(--background)}#root{height:100%;width:100%}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--secondary-color)}*:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}button{font-family:inherit;cursor:pointer}a{color:var(--primary-color);text-decoration:none}a:hover{text-decoration:underline}::selection{background:var(--secondary-color);color:var(--text-primary)}@supports (padding: env(safe-area-inset-left)){.app{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}@media(max-width:768px){::-webkit-scrollbar{width:4px;height:4px}}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;background:var(--bg-primary);padding:1rem}.login-card{width:100%;max-width:400px;padding:2.5rem 2rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px;text-align:center}.login-logo{margin-bottom:1.5rem}.login-logo-img{width:120px;height:auto;filter:brightness(0) invert(1)}.login-title{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.login-subtitle{font-size:.875rem;color:var(--text-secondary);margin-bottom:2rem}.google-sign-in-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.75rem 1.5rem;background:#fff;color:#3c4043;border:1px solid #dadce0;border-radius:8px;font-size:.9375rem;font-weight:500;cursor:pointer;transition:background .2s,box-shadow .2s;min-height:48px}.google-sign-in-btn:hover:not(:disabled){background:#f8f9fa;box-shadow:0 1px 3px #0003}.google-sign-in-btn:disabled{cursor:not-allowed;opacity:.7}.google-icon{flex-shrink:0}.login-spinner{width:20px;height:20px;border:2px solid #dadce0;border-top-color:#4285f4;border-radius:50%;animation:login-spin .8s linear infinite}@keyframes login-spin{to{transform:rotate(360deg)}}.login-error{margin-top:1rem;color:var(--error-color);font-size:.8125rem}@media(max-width:480px){.login-card{padding:2rem 1.5rem;border-radius:12px}.login-logo-img{width:100px}.login-title{font-size:1.25rem}}.consent-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem}.consent-modal{width:100%;max-width:560px;max-height:80vh;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px;display:flex;flex-direction:column;overflow:hidden}.consent-title{font-size:1.25rem;font-weight:600;color:var(--text-primary);padding:1.5rem 1.5rem 0;flex-shrink:0}.consent-content{flex:1;overflow-y:auto;padding:1rem 1.5rem;font-size:.875rem;line-height:1.6;color:var(--text-secondary)}.consent-content h1,.consent-content h2,.consent-content h3{color:var(--text-primary);margin-top:1rem;margin-bottom:.5rem}.consent-content p{margin-bottom:.75rem}.consent-content ul,.consent-content ol{padding-left:1.5rem;margin-bottom:.75rem}.consent-error{color:var(--error-color);font-size:.8125rem;padding:0 1.5rem;flex-shrink:0}.consent-actions{padding:1rem 1.5rem 1.5rem;display:flex;flex-direction:column;gap:.75rem;flex-shrink:0}.consent-accept-btn{width:100%;padding:.75rem;background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;border:none;border-radius:8px;font-size:.9375rem;font-weight:500;cursor:pointer}.consent-accept-btn:hover:not(:disabled){background:linear-gradient(135deg,#6d28d9,#5b21b6)}.consent-accept-btn:disabled{opacity:.7;cursor:not-allowed}.consent-decline-btn{background:none;border:none;color:var(--text-secondary);font-size:.8125rem;cursor:pointer;padding:.5rem}.consent-decline-btn:hover{color:var(--error-color)}@media(max-width:768px){.consent-title{padding:1.25rem 1.25rem 0;font-size:1.125rem}.consent-content{padding:.75rem 1.25rem}.consent-actions{padding:.75rem 1.25rem 1.25rem}}@media(max-width:480px){.consent-modal{max-height:90vh;border-radius:12px}.consent-title{padding:1rem 1rem 0;font-size:1rem}.consent-content{padding:.75rem 1rem}.consent-actions{padding:.75rem 1rem 1rem}}.notification-banner{background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;padding:.625rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:.8125rem;line-height:1.4;z-index:500;flex-shrink:0}.notification-banner-message{flex:1}.notification-banner-dismiss{background:#fff3;border:none;color:#fff;cursor:pointer;border-radius:4px;padding:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;min-width:32px;min-height:32px}.notification-banner-dismiss:hover{background:#ffffff4d}@media(max-width:768px){.notification-banner{padding:.5rem .75rem;gap:.5rem;font-size:.75rem}}.sidebar{width:280px;background:linear-gradient(180deg,#1f1f1f,#1a1a1a);border-right:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden;transition:width .3s ease}.sidebar-backdrop{display:none}.sidebar.collapsed{width:0;border-right:none}.sidebar-header{padding:1.5rem 1rem;background:transparent;border-bottom:none}.logo{display:flex;align-items:center;justify-content:flex-start}.logo-icon{width:100px;height:auto;object-fit:contain;filter:brightness(0) invert(1)}.sidebar-content{flex:1;overflow-y:auto;padding:1rem}.new-chat-btn{width:100%;padding:.75rem 1rem;background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:.5rem;justify-content:center;margin-bottom:1rem}.new-chat-btn:hover{background:linear-gradient(135deg,#6d28d9,#5b21b6)}.new-chat-btn.disabled,.new-chat-btn:disabled{background:#d8d0f0;color:#9ca3af;cursor:not-allowed;transform:none;box-shadow:none}.new-chat-btn.disabled:hover,.new-chat-btn:disabled:hover{background:#d8d0f0;transform:none;box-shadow:none}.chats-list{display:flex;flex-direction:column;gap:.5rem}.chat-item{padding:.5rem .75rem;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:.75rem;background:#8b5cf61a;border-radius:6px;margin-bottom:.25rem}.chat-item.active .chat-title{color:var(--primary-color);font-weight:500}.chat-icon{color:var(--text-secondary);flex-shrink:0}.chat-info{flex:1;min-width:0}.chat-title{font-size:.875rem;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-date{font-size:.75rem;color:var(--text-secondary);margin-top:.125rem}.chat-actions{display:flex;align-items:center;gap:.125rem;opacity:0;flex-shrink:0}.chat-item:hover .chat-actions,.chat-item.active .chat-actions{opacity:1}.action-btn{background:none;border:none;cursor:pointer;color:var(--text-secondary);padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.action-btn:hover{background:#ffffff1a}.action-btn.delete-btn:hover{color:#ef4444}.action-btn.confirm-btn:hover{color:#22c55e}.action-btn.cancel-btn:hover{color:#ef4444}.chat-rename-input{width:100%;background:#ffffff1a;border:1px solid var(--primary-color);border-radius:4px;color:var(--text-primary);font-size:.875rem;padding:.125rem .375rem;outline:none}.sidebar-footer{padding:1rem;border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:.75rem}.admin-panel-btn{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;background:#7c3aed1a;border:1px solid rgba(124,58,237,.2);border-radius:8px;color:#a78bfa;font-size:.8125rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s}.admin-panel-btn:hover{background:#7c3aed33;border-color:#7c3aed4d}.user-profile{display:flex;align-items:center;gap:.75rem}.user-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;overflow:hidden}.user-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}.user-info{flex:1;min-width:0;display:flex;flex-direction:column}.user-name{font-size:.875rem;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-email{font-size:.75rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logout-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:6px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .2s,background .2s}.logout-btn:hover{color:#ef4444;background:#ef44441a}@media(max-width:768px){.sidebar{position:fixed;top:0;left:0;height:100vh;height:100dvh;width:85vw;max-width:320px;z-index:1100;box-shadow:4px 0 24px #00000080;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}.sidebar.collapsed{transform:translate(-100%);width:85vw!important;border:none}.sidebar-backdrop{display:block;position:fixed;top:0;left:0;width:100%;height:100vh;height:100dvh;background:#0009;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1099;opacity:0;pointer-events:none;transition:opacity .3s ease}.sidebar-backdrop.visible{opacity:1;pointer-events:auto}.sidebar-header{padding:1rem}.logo-icon{width:80px}.new-chat-btn{padding:.875rem 1rem;font-size:.9375rem;min-height:44px}.chat-item{padding:.875rem;min-height:44px}.chat-actions{opacity:.7}.action-btn{min-width:36px;min-height:36px}}@media(max-width:480px){.sidebar{width:90vw}.logo-icon{width:70px}.sidebar-header{padding:.75rem}}.chat-container-wrapper{flex:1;display:flex;flex-direction:column;position:relative;overflow:hidden;background:var(--background)}.chat-header{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.menu-toggle-btn{background:none;border:none;color:var(--text-primary);cursor:pointer;padding:.5rem;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:background .2s}.menu-toggle-btn:hover{background:var(--hover-bg)}.chat-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.chat-export-btn{display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:transparent;border:1px solid var(--border-color);border-radius:6px;font-size:.8125rem;color:var(--text-secondary);cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0}.chat-export-btn:hover:not(:disabled){background:var(--bg-secondary);color:var(--text-primary)}.chat-export-btn:disabled{opacity:.5;cursor:default}.chat-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.chat-settings-btn{display:flex;align-items:center;justify-content:center;padding:.375rem;background:transparent;border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .15s}.chat-settings-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.chat-settings-btn.active{background:#7c3aed26;border-color:var(--primary-color);color:var(--primary-color)}.chat-settings-panel{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);padding:.75rem 1.5rem;overflow:hidden}.chat-settings-grid{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}.chat-setting-item{display:flex;align-items:center;gap:.5rem}.chat-setting-item label{font-size:.75rem;font-weight:500;color:var(--text-secondary);white-space:nowrap}.chat-setting-item select{padding:.25rem .5rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:.75rem;outline:none;cursor:pointer}.chat-setting-item select:focus{border-color:var(--primary-color)}.chat-setting-toggle{position:relative;width:36px;height:20px}.chat-setting-toggle input{opacity:0;width:0;height:0;position:absolute}.chat-setting-slider{position:absolute;inset:0;background:var(--border-color);border-radius:20px;cursor:pointer;transition:background .2s}.chat-setting-slider:before{content:"";position:absolute;width:16px;height:16px;left:2px;bottom:2px;background:#fff;border-radius:50%;transition:transform .2s}.chat-setting-toggle input:checked+.chat-setting-slider{background:var(--primary-color)}.chat-setting-toggle input:checked+.chat-setting-slider:before{transform:translate(16px)}.chat-container{flex:1;overflow-y:auto;padding:0;display:flex;flex-direction:column}.chat-container:not(.has-messages){align-items:center;justify-content:center;background:var(--background);padding:2rem}.empty-state{text-align:center;max-width:700px;margin:auto}.empty-title{font-size:2.25rem;font-weight:600;color:#e5e7eb;margin-bottom:1rem;letter-spacing:-.02em}.empty-subtitle{font-size:1.125rem;color:#9ca3af;line-height:1.6}.template-buttons{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem;justify-content:center;max-width:600px}.template-btn{padding:.625rem 1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;color:var(--text-primary);font-size:.875rem;cursor:pointer;transition:all .15s;line-height:1.4;text-align:left}.template-btn:hover{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.messages{display:flex;flex-direction:column;gap:0;width:100%}.message{display:flex;justify-content:center;width:100%;padding:1.5rem 2rem}.message.user{background:transparent}.message.assistant{background:var(--background)}.message-content{padding:0;max-width:1000px;width:100%}.message.user .message-content{display:flex;justify-content:flex-end}.message.user .message-text{max-width:700px;background:#2d3748;padding:1.25rem 1.5rem;border-radius:16px;box-shadow:0 2px 8px #0000004d;color:#fff}.message-text{font-size:1rem;line-height:1.7;color:var(--text-primary);letter-spacing:-.01em}@keyframes slideIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.message-header{display:flex;justify-content:flex-end}.message-avatar{display:none!important}.message-actions{position:relative}.download-btn{display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:transparent;border:1px solid var(--border-color);border-radius:6px;font-size:.8125rem;color:var(--text-secondary);cursor:pointer;transition:all .15s}.download-btn:hover{background:var(--bg-secondary);border-color:var(--border-color);color:var(--text-primary)}.download-menu{position:absolute;top:calc(100% + .5rem);right:0;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;overflow:hidden;z-index:10;min-width:150px}.download-menu button{width:100%;padding:.625rem .875rem;background:none;border:none;text-align:left;font-size:.8125rem;color:var(--text-primary);cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:.5rem}.download-menu button:hover{background:var(--bg-secondary)}.download-menu button+button{border-top:1px solid var(--border-color)}.message-text h1,.message-text h2,.message-text h3,.message-text h4,.message-text h5,.message-text h6{margin-top:1.5rem;margin-bottom:.75rem;font-weight:600;line-height:1.3;color:var(--text-primary)}.message-text h1{font-size:1.5rem}.message-text h2{font-size:1.25rem}.message-text h3{font-size:1.125rem}.message-text p{margin-bottom:.5rem}.message.user .message-text p{margin-bottom:0}.message-text ul,.message-text ol{margin:.75rem 0;padding-left:2rem}.message-text li{margin-bottom:.5rem}.message-text strong{font-weight:600;color:var(--text-primary)}.message-text em{font-style:italic}.message-text a{color:var(--primary-color);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s}.message-text a:hover{border-bottom-color:var(--primary-color)}.message-text .inline-code{background:var(--background);padding:.125rem .375rem;border-radius:4px;font-size:.875rem;font-family:Monaco,Menlo,Courier New,monospace;color:#d73a49}.message-text .code-block{display:block;background:#2d2d2d;padding:1rem;border-radius:8px;font-size:.875rem;font-family:Monaco,Menlo,Courier New,monospace;overflow-x:auto;margin:1rem 0;border:1px solid var(--border-color);color:#e5e7eb}.message-text pre{margin:1rem 0;background:#2d2d2d;padding:1rem;border-radius:8px;overflow-x:auto;border:1px solid var(--border-color)}.message-text pre code{background:transparent;padding:0;border-radius:0;font-size:.875rem;font-family:Monaco,Menlo,Courier New,monospace;color:#e5e7eb}.message-text blockquote{margin:1rem 0;padding:.5rem 1rem;border-left:4px solid var(--primary-color);background:var(--bg-secondary);border-radius:0 8px 8px 0;color:var(--text-secondary)}.message-text table{width:100%;margin:1rem 0;border-collapse:collapse;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.message-text th,.message-text td{padding:.75rem;text-align:left;border-bottom:1px solid var(--border-color)}.message-text th{background:var(--background);font-weight:600;color:var(--text-primary)}.message-text tr:last-child td{border-bottom:none}.message-text hr{margin:1.5rem 0;border:none;border-top:1px solid var(--border-color)}.thinking-section{margin-bottom:1rem;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-color);overflow:hidden}.thinking-header{padding:.75rem 1rem;cursor:pointer;font-weight:600;color:var(--primary-color);-webkit-user-select:none;user-select:none;background:var(--bg-secondary);list-style:none;display:flex;align-items:center;gap:.5rem;transition:background .2s}.thinking-header:hover{background:var(--border-color)}.thinking-header::marker,.thinking-header::-webkit-details-marker{display:none}.thinking-header:after{content:"▼";margin-left:auto;font-size:.75rem;transition:transform .2s}.thinking-section[open] .thinking-header:after{transform:rotate(180deg)}.thinking-content{padding:1rem;background:var(--bg-primary);border-top:1px solid var(--border-color);font-size:.875rem;color:var(--text-secondary)}.thinking-content p:first-child{margin-top:0}.thinking-content p:last-child{margin-bottom:0}.thinking-in-progress{animation:thinking-pulse 1.5s ease-in-out infinite}@keyframes thinking-pulse{0%,to{opacity:1}50%{opacity:.6}}.citations-section{margin-top:1.5rem;background:var(--bg-tertiary);border-radius:8px;border:1px solid var(--border-color);overflow:hidden}.citations-header{padding:.875rem 1rem;cursor:pointer;font-weight:600;color:var(--primary-color);-webkit-user-select:none;user-select:none;background:var(--bg-tertiary);list-style:none;display:flex;align-items:center;gap:.5rem;transition:background .2s;font-size:.9375rem}.citations-header:hover{background:var(--bg-secondary)}.citations-header::marker,.citations-header::-webkit-details-marker{display:none}.citations-header:after{content:"▼";margin-left:auto;font-size:.75rem;transition:transform .2s}.citations-section[open] .citations-header:after{transform:rotate(180deg)}.citations-list{padding:1rem;background:var(--bg-secondary);border-top:1px solid var(--border-color);max-height:400px;overflow-y:auto}.citation-item{display:flex;gap:.5rem;padding:.5rem 0;border-bottom:1px solid var(--border-color)}.citation-item:last-child{border-bottom:none}.citation-number{font-weight:600;color:var(--primary-color);min-width:2rem;flex-shrink:0}.citation-url{color:#6b7280;text-decoration:none;word-break:break-all;font-size:.875rem;display:flex;align-items:center;gap:.375rem;transition:color .2s}.citation-url:hover{color:var(--primary-color);text-decoration:underline}.citation-url svg{flex-shrink:0;opacity:.5}.citation-link{color:var(--primary-color);cursor:pointer;text-decoration:none;font-weight:600;transition:all .2s;padding:.125rem .25rem;border-radius:3px;margin:0 .125rem;font-size:.75em;line-height:0;position:relative;top:-.4em;vertical-align:baseline}.citation-link:hover{background:#8b7fd626;color:var(--primary-dark);transform:translateY(-1px)}.message-text details{margin-top:1rem;padding:1rem;background:var(--background);border-radius:8px;border:1px solid var(--border-color)}.message-text summary{cursor:pointer;font-weight:600;color:var(--primary-color);-webkit-user-select:none;user-select:none}.progress-indicator{display:none}.scroll-to-bottom{position:absolute;bottom:20px;left:50%;transform:translate(-50%);width:40px;height:40px;border-radius:50%;background:var(--primary-color);color:#fff;border:none;cursor:pointer;box-shadow:0 4px 12px #8b7fd666;display:flex;align-items:center;justify-content:center;z-index:100;transition:all .2s}.scroll-to-bottom:hover{background:#fff;color:var(--primary-color);box-shadow:0 6px 16px #8b7fd680}.progress-content{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.progress-icon{color:var(--primary-color);display:flex;align-items:center;justify-content:center}.progress-text{font-size:1rem;color:var(--text-secondary);font-weight:500}.progress-bar{height:8px;background:var(--background);border-radius:4px;overflow:hidden}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--primary-color),var(--primary-dark));border-radius:4px}.table-wrapper{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width:768px){.message{padding:.5rem .75rem;gap:.5rem;max-width:100%}.message.user .message-text{max-width:85%}.empty-state{max-width:90%;padding:0 1rem}.empty-title{font-size:1.75rem}.empty-subtitle{font-size:1rem}.messages{padding:.5rem;max-width:100%;margin:0}.message-avatar{width:32px;height:32px;font-size:.875rem}.message-content{padding:.5rem;max-width:100%}.message-text{font-size:.875rem}.message-text h1{font-size:1.25rem}.message-text h2{font-size:1.125rem}.message-text h3{font-size:1rem}.chat-export-btn span{display:none}.message-header{justify-content:flex-start}.download-btn{padding:.375rem .625rem;font-size:.8125rem}.download-menu{right:auto;left:50%;transform:translate(-50%);min-width:140px}.thinking-section,.citations-section{margin:.75rem 0}.citations-list{max-height:200px}.message-text table{display:block;overflow-x:auto}.scroll-to-bottom{bottom:calc(20px + env(safe-area-inset-bottom,0px));width:44px;height:44px}.citation-item{flex-direction:column;gap:.25rem}.feedback-buttons{opacity:1}.feedback-btn{width:36px;height:36px}.chat-header{padding:.75rem;gap:.5rem}.chat-settings-panel{padding:.75rem}.chat-settings-grid{gap:.75rem}.chat-setting-item label,.chat-setting-item select{font-size:.8125rem}}@media(max-width:480px){.message{padding:.375rem}.message-content{padding:.25rem}.message.user .message-text{max-width:90%;padding:.75rem 1rem;border-radius:12px}.message-text h1{font-size:1.125rem}.message-text h2{font-size:1rem}.message-text h3{font-size:.9375rem}.thinking-section,.citations-section{margin:.5rem 0}.thinking-header,.citations-header{padding:.625rem .75rem;font-size:.8125rem}.thinking-content{padding:.75rem}.download-btn span{display:none}}.feedback-buttons{display:flex;gap:.25rem;margin-top:.5rem;opacity:0;transition:opacity .2s}.message:hover .feedback-buttons,.feedback-buttons.feedback-submitted{opacity:1}.feedback-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .15s}.feedback-btn:hover:not(:disabled){background:var(--bg-secondary);border-color:var(--border-color);color:var(--text-primary)}.feedback-btn:disabled{cursor:default;opacity:.4}.feedback-btn.active{opacity:1!important}.feedback-btn.active:first-child{color:#22c55e}.feedback-btn.active:last-child{color:#ef4444}.feedback-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.feedback-modal{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;padding:1.25rem;width:90%;max-width:400px;box-shadow:0 8px 32px #0000004d}.feedback-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;font-weight:600;color:var(--text-primary);font-size:.9375rem}.feedback-modal-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.25rem;border-radius:4px;display:flex;align-items:center}.feedback-modal-close:hover{color:var(--text-primary);background:var(--bg-secondary)}.feedback-modal-textarea{width:100%;padding:.75rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:.875rem;font-family:inherit;resize:vertical;min-height:72px}.feedback-modal-textarea:focus{outline:none;border-color:var(--primary-color)}.feedback-modal-textarea::placeholder{color:var(--text-secondary)}.feedback-modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.75rem}.feedback-modal-skip,.feedback-modal-submit{padding:.5rem 1rem;border-radius:6px;font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .15s}.feedback-modal-skip{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary)}.feedback-modal-skip:hover{background:var(--bg-secondary);color:var(--text-primary)}.feedback-modal-submit{background:var(--primary-color);border:none;color:#fff}.feedback-modal-submit:hover{opacity:.9}.typing-indicator .message-content{padding:.75rem 1rem}.typing-dots{display:flex;gap:4px;align-items:center}.typing-dots span{width:8px;height:8px;background:var(--primary-color);border-radius:50%;animation:typingBounce 1.4s infinite ease-in-out both}.typing-dots span:nth-child(1){animation-delay:-.32s}.typing-dots span:nth-child(2){animation-delay:-.16s}.typing-dots span:nth-child(3){animation-delay:0s}@keyframes typingBounce{0%,80%,to{transform:scale(.6);opacity:.5}40%{transform:scale(1);opacity:1}}.input-container{padding:0;background:var(--bg-secondary);border-top:1px solid var(--border-color)}.input-wrapper{max-width:1000px;margin:0 auto;position:relative;padding:1rem 2rem}.progress-indicator{background:var(--bg-tertiary);padding:1rem 1.25rem;border-radius:8px;margin-bottom:1rem;border-left:3px solid var(--primary-color);position:relative}.progress-header{margin-bottom:.625rem}.progress-title{font-size:.9375rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:.5rem}.progress-timer{font-weight:400;color:var(--text-secondary);font-size:.875rem}.progress-estimate{font-size:.8125rem;color:var(--text-secondary);margin-top:.25rem}.progress-status{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.progress-icon{color:var(--primary-color);display:flex;align-items:center;justify-content:center;flex-shrink:0}.progress-text{font-size:.8125rem;color:var(--text-secondary);flex:1}.progress-bar{height:6px;background:var(--border-color);border-radius:3px;overflow:hidden;position:relative}.progress-bar-fill{height:100%;background:var(--primary-color);border-radius:3px;transition:width .5s ease-out}.mode-toggle{display:flex;gap:.5rem;margin-bottom:.5rem;justify-content:flex-start}.mode-btn{padding:.5rem .875rem;background:transparent;border:1px solid #E5E7EB;border-radius:6px;font-size:.8125rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:.375rem;color:var(--text-secondary);transition:all .15s}.mode-btn:hover{background:var(--bg-tertiary);border-color:var(--border-color)}.mode-btn.active{background:#a78bfa26;color:var(--primary-color);border-color:var(--primary-color)}.attachment-preview{margin-bottom:.5rem;padding:.5rem;background:var(--bg-tertiary);border-radius:8px;border:1px solid var(--border-color)}.attachment-item{display:flex;align-items:center;gap:.75rem;position:relative}.attachment-item img{width:60px;height:60px;object-fit:cover;border-radius:6px;border:1px solid var(--border-color)}.attachment-info{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary);flex:1;min-width:0}.attachment-info span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.remove-attachment{padding:.375rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;cursor:pointer;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;transition:all .15s}.remove-attachment:hover{background:#ef44441a;border-color:#ef4444;color:#ef4444}.input-container-box{position:relative}.input-box{display:flex;align-items:center;gap:.75rem;background:var(--bg-tertiary);padding:.75rem 1rem;border-radius:12px;border:1.5px solid var(--border-color);transition:all .2s;box-shadow:0 1px 2px #0003}.input-box:focus-within{border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a,0 1px 2px #0000000d}.icon-btn{padding:.375rem;background:none;border:none;cursor:pointer;color:var(--text-secondary);border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .15s}.icon-btn:hover{background:var(--hover-bg);color:var(--text-primary)}.icon-btn.active{background:#a78bfa26;color:var(--primary-color)}.message-input{flex:1;border:none;background:transparent;outline:none;font-size:1rem;font-family:inherit;resize:none;max-height:200px;line-height:1.6;color:var(--text-primary)}.message-input::placeholder{color:#9ca3af}.input-actions{display:flex;gap:.25rem;align-items:center}.send-btn{padding:.5rem;background:transparent;border:none;border-radius:6px;cursor:pointer;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;transition:all .15s}.send-btn.active{background:var(--primary-color);color:#fff}.send-btn.active:hover{background:var(--primary-hover)}.send-btn:disabled{opacity:.4;cursor:not-allowed}@media(max-width:768px){.input-wrapper{padding:.75rem .5rem;padding-bottom:calc(.75rem + env(safe-area-inset-bottom,0px))}.mode-toggle{gap:.5rem;margin-bottom:.75rem;overflow-x:auto;padding-bottom:.25rem;-webkit-overflow-scrolling:touch;flex-wrap:nowrap}.mode-toggle::-webkit-scrollbar{display:none}.mode-btn{padding:.625rem 1rem;font-size:.8125rem}.input-box{padding:.5rem .75rem;gap:.5rem}.input-actions{gap:.125rem}.icon-btn,.send-btn{width:44px;height:44px;padding:0;flex-shrink:0;display:flex;align-items:center;justify-content:center}.cancel-btn,.send-audio-btn{min-height:44px}}@media(max-width:480px){.input-wrapper{padding:.5rem .375rem;padding-bottom:calc(.5rem + env(safe-area-inset-bottom,0px))}.mode-toggle{gap:.375rem;margin-bottom:.5rem}.mode-btn{padding:.5rem .75rem;font-size:.75rem;white-space:nowrap}.input-box{padding:.375rem .5rem;gap:.375rem}.message-input{font-size:1rem}.recording-ui{flex-wrap:wrap;gap:.5rem}.recording-actions{width:100%;justify-content:flex-end}}.recording-ui{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0 .5rem}.recording-status{display:flex;align-items:center;gap:.75rem;color:#ef4444;font-weight:500}.recording-dot{width:10px;height:10px;background-color:#ef4444;border-radius:50%}.recording-time{font-variant-numeric:tabular-nums;font-family:monospace;font-size:.9375rem}.recording-text{font-size:.875rem;opacity:.8}.recording-actions{display:flex;align-items:center;gap:.5rem}.cancel-btn{padding:.5rem 1rem;background:transparent;border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:all .2s;font-size:.875rem}.cancel-btn:hover{background:var(--bg-secondary);color:var(--text-primary);border-color:var(--text-secondary)}.send-audio-btn{padding:.5rem 1rem;background:#ef4444;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;transition:all .2s}.send-audio-btn:hover{background:#dc2626;box-shadow:0 2px 8px #ef44444d}.admin-layout{display:flex;height:100vh;height:100dvh;width:100%;overflow:hidden;background:var(--bg-primary)}.admin-sidebar{width:260px;background:var(--bg-secondary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;flex-shrink:0}.admin-sidebar-header{padding:1.5rem 1rem;display:flex;align-items:center;gap:.75rem}.admin-logo{width:80px;height:auto;filter:brightness(0) invert(1)}.admin-badge{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--primary-color);background:#7c3aed26;padding:.2rem .5rem;border-radius:4px}.admin-nav{flex:1;padding:.5rem .75rem;display:flex;flex-direction:column;gap:.25rem;overflow-y:auto}.admin-nav-item{display:flex;align-items:center;gap:.75rem;padding:.625rem .75rem;border-radius:8px;color:var(--text-secondary);text-decoration:none;font-size:.875rem;font-weight:450;transition:background .15s,color .15s}.admin-nav-item:hover{background:#8b5cf61a;color:var(--text-primary)}.admin-nav-item.active{background:#7c3aed33;color:var(--primary-color);font-weight:500}.admin-sidebar-footer{padding:.75rem;border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:.75rem}.admin-back-btn{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;background:none;border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);font-size:.8125rem;cursor:pointer;transition:background .15s,color .15s}.admin-back-btn:hover{background:#ffffff0d;color:var(--text-primary)}.admin-user-profile{display:flex;align-items:center;gap:.625rem}.admin-user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;overflow:hidden}.admin-user-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}.admin-user-info{flex:1;min-width:0}.admin-user-name{font-size:.8125rem;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.admin-logout-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:6px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .2s,background .2s}.admin-logout-btn:hover{color:var(--error-color);background:#ef44441a}.admin-main{flex:1;overflow-y:auto;padding:2rem}.admin-page{max-width:1200px;margin:0 auto}.admin-page-header{margin-bottom:1.5rem}.admin-page-title{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin:0}.admin-page-subtitle{font-size:.875rem;color:var(--text-secondary);margin:.25rem 0 0}.admin-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem}.admin-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.admin-card-title{font-size:.875rem;font-weight:500;color:var(--text-secondary);margin:0}.admin-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;margin-bottom:1.5rem}.admin-stat-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:1.25rem}.admin-stat-label{font-size:.8125rem;color:var(--text-secondary);margin:0 0 .5rem}.admin-stat-value{font-size:1.75rem;font-weight:600;color:var(--text-primary);margin:0}.admin-date-range{display:flex;align-items:center;gap:.5rem}.admin-date-input{padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:8px;font-size:.8125rem;color:var(--text-primary);background:var(--bg-tertiary);outline:none}.admin-date-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px #7c3aed26}.admin-date-input::-webkit-calendar-picker-indicator{filter:invert(1)}.admin-date-separator{color:var(--text-secondary);font-size:.8125rem}.admin-btn{padding:.5rem 1rem;border:none;border-radius:8px;font-size:.8125rem;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;transition:background .15s,opacity .15s}.admin-btn:disabled{opacity:.5;cursor:not-allowed}.admin-btn-primary{background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff}.admin-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#6d28d9,#5b21b6)}.admin-btn-danger{background:#ef444426;color:var(--error-color)}.admin-btn-danger:hover:not(:disabled){background:#ef444440}.admin-btn-ghost{background:none;color:var(--text-secondary);border:1px solid var(--border-color)}.admin-btn-ghost:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary)}.admin-empty{text-align:center;padding:3rem 1rem;color:var(--text-secondary)}.admin-empty p{margin:.5rem 0 0;font-size:.875rem}.admin-loading{display:flex;align-items:center;justify-content:center;padding:3rem}.admin-spinner{width:32px;height:32px;border:3px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:admin-spin .8s linear infinite}@keyframes admin-spin{to{transform:rotate(360deg)}}.admin-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;padding:1rem;color:var(--error-color);font-size:.875rem}.admin-textarea{width:100%;min-height:200px;padding:.75rem;border:1px solid var(--border-color);border-radius:8px;font-size:.875rem;font-family:inherit;color:var(--text-primary);background:var(--bg-tertiary);resize:vertical;outline:none;box-sizing:border-box}.admin-textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px #7c3aed26}.admin-pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1.5rem;padding:1rem 0}.admin-pagination-info{font-size:.8125rem;color:var(--text-secondary)}.admin-mobile-header,.admin-sidebar-backdrop{display:none}@media(max-width:768px){.admin-layout{flex-direction:column}.admin-mobile-header{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-shrink:0}.admin-mobile-menu-btn{background:none;border:none;color:var(--text-primary);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center}.admin-mobile-title{font-size:1rem;font-weight:500;color:var(--text-primary)}.admin-sidebar-backdrop{display:block;position:fixed;top:0;left:0;width:100%;height:100dvh;background:#0009;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1099;opacity:0;pointer-events:none;transition:opacity .3s ease}.admin-sidebar-backdrop.visible{opacity:1;pointer-events:auto}.admin-sidebar{position:fixed;top:0;left:0;height:100dvh;width:280px;z-index:1100;transform:translate(-100%);transition:transform .3s ease;box-shadow:4px 0 24px #00000080}.admin-sidebar.open{transform:translate(0)}.admin-main{padding:1rem}.admin-stats-grid{grid-template-columns:1fr 1fr}.admin-date-range{flex-wrap:wrap}}@media(max-width:480px){.admin-stats-grid{grid-template-columns:1fr}}.app{display:flex;height:100vh;height:100dvh;width:100%;overflow:hidden;background:#1a1a2e}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden;background:linear-gradient(180deg,#f8f7ff,#f0eeff)}.admin-date-controls{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.admin-date-presets{display:flex;flex-wrap:wrap;gap:.375rem}.admin-preset-btn{padding:.3rem .625rem;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);color:var(--text-secondary);font-size:.75rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.admin-preset-btn:hover{border-color:var(--primary-color);color:var(--primary-color)}.admin-preset-btn.active{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.admin-filter-tabs{display:flex;gap:.25rem;margin-bottom:1.25rem;border-bottom:1px solid var(--border-color);padding-bottom:0}.admin-filter-tab{padding:.5rem 1rem;border:none;background:none;color:var(--text-secondary);font-size:.8125rem;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s}.admin-filter-tab:hover{color:var(--text-primary)}.admin-filter-tab.active{color:var(--primary-color);border-bottom-color:var(--primary-color)}.admin-success{background:#10b9811a;border:1px solid rgba(16,185,129,.3);border-radius:8px;padding:.75rem 1rem;color:var(--success-color);font-size:.875rem;margin-bottom:1rem}.feedback-list{display:flex;flex-direction:column;gap:1rem}.feedback-card{padding:1.25rem}.feedback-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.feedback-badge{display:inline-flex;align-items:center;gap:.375rem;font-size:.75rem;font-weight:600;padding:.25rem .625rem;border-radius:999px}.feedback-badge.positive{background:#10b98126;color:var(--success-color)}.feedback-badge.negative{background:#ef444426;color:var(--error-color)}.feedback-date{font-size:.75rem;color:var(--text-secondary)}.feedback-section{margin-bottom:.75rem}.feedback-section:last-child{margin-bottom:0}.feedback-section-label{display:block;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:.25rem}.feedback-section-text{margin:0;font-size:.875rem;color:var(--text-primary);line-height:1.5;white-space:pre-wrap;word-break:break-word}.feedback-ai-text{color:var(--text-secondary);font-size:.8125rem}.templates-list{display:flex;flex-direction:column;gap:.75rem}.template-card{padding:1rem 1.25rem}.template-card-content{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.template-text{margin:0;font-size:.875rem;color:var(--text-primary);line-height:1.5;white-space:pre-wrap;word-break:break-word;flex:1}
