:root{--bs-primary:#10a37f;--bs-primary-rgb:16,163,127;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--chat-bg:#fff;--chat-border:#e9ecef;--message-user-bg:linear-gradient(135deg,#10a37f,#0d8f6b);--message-assistant-bg:#f8f9fa;--message-assistant-text:#212529;--sidebar-bg:#fff;--sidebar-border:#e9ecef;--input-bg:#fff;--typing-bg:#f8f9fa}[data-bs-theme=dark]{--bs-body-bg:#1a1a1a;--bs-body-color:#fff;--bs-border-color:#404040;--chat-bg:#1a1a1a;--chat-border:#404040;--message-user-bg:linear-gradient(135deg,#10a37f,#0d8f6b);--message-assistant-bg:#2d2d2d;--message-assistant-text:#fff;--sidebar-bg:#1a1a1a;--sidebar-border:#404040;--input-bg:#2d2d2d;--typing-bg:#2d2d2d}body{color:var(--bs-body-color);transition:all .3s ease;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.chat-container,body{background:var(--chat-bg)}.chat-container{height:100vh;max-width:100%;overflow:hidden}.chat-header{background:var(--sidebar-bg);border-bottom:1px solid var(--chat-border);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);position:-webkit-sticky;position:sticky;top:0;z-index:1000}.chat-messages{height:calc(100vh - 140px);overflow-y:auto;padding:1rem;background:var(--chat-bg);scroll-behavior:smooth}.chat-messages::-webkit-scrollbar{width:4px}.chat-messages::-webkit-scrollbar-track{background:transparent}.chat-messages::-webkit-scrollbar-thumb{background:rgba(0,0,0,.2);border-radius:2px}[data-bs-theme=dark] .chat-messages::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.2)}.message-bubble{max-width:85%;margin-bottom:1.5rem;padding:1rem 1.25rem;border-radius:1.5rem;word-wrap:break-word;position:relative;animation:messageSlideIn .3s ease-out;box-shadow:0 2px 8px rgba(0,0,0,.1)}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.user-message{background:var(--message-user-bg);color:#fff;margin-left:auto;border-bottom-right-radius:.5rem;box-shadow:0 4px 12px rgba(16,163,127,.3)}.assistant-message{background:var(--message-assistant-bg);color:var(--message-assistant-text);margin-right:auto;border-bottom-left-radius:.5rem;border:1px solid var(--chat-border)}.message-image{max-width:100%;border-radius:1rem;margin-top:.5rem;box-shadow:0 4px 12px rgba(0,0,0,.15)}.chat-input-container{position:fixed;bottom:0;left:0;right:0;background:var(--input-bg);border-top:1px solid var(--chat-border);padding:1rem;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.chat-input-form{position:relative}.chat-input{border-radius:2rem;border:2px solid var(--chat-border);padding:.75rem 4rem .75rem 1.5rem;transition:all .3s ease;font-size:1rem}.chat-input,.chat-input:focus{background:var(--input-bg);color:var(--bs-body-color)}.chat-input:focus{border-color:var(--bs-primary);box-shadow:0 0 0 .2rem rgba(var(--bs-primary-rgb),.25)}.chat-send-btn{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);border-radius:50%;width:2.5rem;height:2.5rem;border:none;background:var(--bs-primary);color:#fff;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.chat-send-btn:hover:not(:disabled){background:#0d8f6b;transform:translateY(-50%) scale(1.05)}.chat-send-btn:disabled{background:var(--bs-secondary);opacity:.6}.typing-indicator{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:var(--typing-bg);border-radius:1.5rem;margin-right:auto;max-width:85%;border:1px solid var(--chat-border);animation:messageSlideIn .3s ease-out}.typing-dots{display:flex;gap:.25rem}.typing-dot{width:8px;height:8px;border-radius:50%;background:var(--bs-primary);animation:typing 1.4s ease-in-out infinite}.typing-dot:first-child{animation-delay:-.32s}.typing-dot:nth-child(2){animation-delay:-.16s}@keyframes typing{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1);opacity:1}}.sidebar{position:fixed;top:0;left:-100%;width:320px;height:100vh;background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);transition:left .3s cubic-bezier(.4,0,.2,1);z-index:1050;overflow-y:auto;box-shadow:4px 0 20px rgba(0,0,0,.1)}.sidebar.show{left:0}.sidebar-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:1040;opacity:0;visibility:hidden;transition:all .3s ease}.sidebar-overlay.show{opacity:1;visibility:visible}.sidebar-header{padding:1.5rem;border-bottom:1px solid var(--sidebar-border);background:var(--sidebar-bg)}.new-chat-btn{background:var(--bs-primary);border:none;border-radius:.75rem;padding:.75rem 1rem;color:#fff;font-weight:500;transition:all .3s ease;box-shadow:0 2px 8px rgba(16,163,127,.3)}.new-chat-btn:hover{background:#0d8f6b;transform:translateY(-1px);box-shadow:0 4px 12px rgba(16,163,127,.4);color:#fff}.theme-toggle-btn{border:2px solid var(--chat-border);border-radius:.75rem;padding:.75rem 1rem;background:transparent;color:var(--bs-body-color);transition:all .3s ease}.theme-toggle-btn:hover{border-color:var(--bs-primary);color:var(--bs-primary);background:rgba(var(--bs-primary-rgb),.1)}.chat-item{padding:1rem 1.5rem;border-bottom:1px solid var(--sidebar-border);cursor:pointer;transition:all .3s ease;background:var(--sidebar-bg)}.chat-item:hover{background:rgba(var(--bs-primary-rgb),.1);transform:translateX(4px)}.chat-item.active{background:var(--bs-primary);color:#fff;border-left:4px solid #0d8f6b}.chat-item-title{font-weight:500;margin-bottom:.25rem;font-size:.95rem}.chat-item-meta{font-size:.8rem;opacity:.7}.welcome-section{text-align:center;padding:3rem 1rem;animation:fadeIn .6s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.welcome-title{font-size:2rem;font-weight:700;color:var(--bs-primary);margin-bottom:1rem}.welcome-subtitle{font-size:1.1rem;color:var(--bs-secondary);margin-bottom:2rem}.feature-cards{display:grid;grid-gap:1rem;gap:1rem;margin-top:2rem}.feature-card{background:var(--message-assistant-bg);border:1px solid var(--chat-border);border-radius:1rem;padding:1.5rem;text-align:center;transition:all .3s ease}.feature-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.1)}.feature-icon{font-size:2rem;color:var(--bs-primary);margin-bottom:1rem}.user-profile{gap:.75rem;padding:1rem 1.5rem;border-bottom:1px solid var(--sidebar-border);background:var(--sidebar-bg)}.user-avatar,.user-profile{display:flex;align-items:center}.user-avatar{width:40px;height:40px;border-radius:50%;background:var(--bs-primary);justify-content:center;color:#fff;font-weight:600}.user-info h6{margin:0;font-size:.9rem;font-weight:600}.user-info small{color:var(--bs-secondary);font-size:.8rem}.logout-btn{background:none;border:none;color:var(--bs-danger);padding:.5rem;border-radius:.5rem;transition:all .3s ease}.logout-btn:hover{background:rgba(220,53,69,.1)}.login-container{min-height:100vh;background:linear-gradient(135deg,var(--bs-primary),#0d8f6b);display:flex;align-items:center;justify-content:center;padding:1rem}.login-card{background:var(--sidebar-bg);border-radius:1.5rem;padding:3rem 2rem;box-shadow:0 20px 40px rgba(0,0,0,.1);text-align:center;max-width:400px;width:100%}.login-title{font-size:2rem;font-weight:700;color:var(--bs-primary);margin-bottom:1rem}.login-subtitle{color:var(--bs-secondary);margin-bottom:2rem}.login-btn{background:var(--bs-primary);border:none;border-radius:.75rem;padding:1rem 2rem;color:#fff;font-weight:500;font-size:1.1rem;transition:all .3s ease;box-shadow:0 4px 12px rgba(16,163,127,.3)}.login-btn:hover{background:#0d8f6b;transform:translateY(-2px);box-shadow:0 6px 16px rgba(16,163,127,.4);color:#fff}@media (max-width:576px){.message-bubble{max-width:90%;padding:.875rem 1rem}.chat-input-container{padding:.75rem}.sidebar{width:280px}.welcome-title{font-size:1.75rem}.feature-cards{gap:.75rem}.feature-card{padding:1.25rem}}.image-generation-indicator{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:1.5rem;padding:1rem 1.25rem;margin-right:auto;max-width:85%;animation:messageSlideIn .3s ease-out;box-shadow:0 4px 12px rgba(102,126,234,.3)}.image-loading{display:flex;align-items:center;gap:.75rem}.image-loading-spinner{width:20px;height:20px;border:2px solid hsla(0,0%,100%,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}