:root{--bg-base:#070b14;--bg-surface:#141b2db3;--bg-glass:#0f172a99;--bg-input:#0003;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--brand-accent:#e87c46;--brand-accent-hover:#d06a36;--brand-glow:#e87c4626;--border-subtle:#ffffff14;--border-strong:#ffffff26;--shadow-sm:0 4px 12px #0003;--shadow-lg:0 20px 40px #0006;--msg-user:#1e293b;--msg-ai:transparent}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;background-image:radial-gradient(circle at 15%,#e87c460d,#0000 25%),radial-gradient(circle at 85% 30%,#3b82f60d,#0000 25%);height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex;overflow:hidden}.auth-screen{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:9999;background:#070b14d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.auth-card{background:var(--bg-surface);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border-strong);text-align:center;width:100%;max-width:420px;box-shadow:var(--shadow-lg);border-radius:20px;padding:48px;animation:.6s cubic-bezier(.2,.8,.2,1) slideUpFade}.auth-card h2{color:var(--text-primary);letter-spacing:-.5px;margin-bottom:8px;font-size:24px;font-weight:700}.auth-card p{color:var(--text-secondary);margin-bottom:32px;font-size:14px}.auth-card input{background:var(--bg-input);border:1px solid var(--border-subtle);width:100%;color:var(--text-primary);border-radius:10px;margin-bottom:16px;padding:14px;font-size:15px;transition:all .3s}.auth-card input:focus{border-color:var(--brand-accent);box-shadow:0 0 0 3px var(--brand-glow);outline:none}.auth-card button{background:var(--brand-accent);color:#fff;cursor:pointer;border:none;border-radius:10px;width:100%;padding:14px;font-size:15px;font-weight:600;transition:all .3s}.auth-card button:hover{background:var(--brand-accent-hover);box-shadow:0 8px 20px var(--brand-glow);transform:translateY(-2px)}.sidebar{background:var(--bg-surface);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-right:1px solid var(--border-subtle);z-index:10;flex-direction:column;width:300px;padding:20px;display:flex}.sidebar-profile{border:1px solid var(--border-subtle);background:#ffffff08;border-radius:12px;align-items:center;gap:12px;margin-bottom:20px;padding:16px;display:flex}.profile-avatar{background:linear-gradient(135deg, var(--brand-accent), var(--brand-accent-hover));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:16px;font-weight:700;display:flex;overflow:hidden}.profile-info{flex-direction:column;display:flex;overflow:hidden}.profile-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.profile-email{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.new-chat-btn{border:1px solid var(--border-subtle);color:var(--text-primary);cursor:pointer;background:#ffffff08;border-radius:10px;justify-content:center;align-items:center;gap:10px;margin-bottom:24px;padding:12px;font-size:14px;font-weight:500;transition:all .2s;display:flex}.new-chat-btn:hover{border-color:var(--border-strong);background:#ffffff14}.history-list{flex:1;overflow-y:auto}.history-item{cursor:pointer;color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;border-radius:8px;margin-bottom:4px;padding:12px;font-size:14px;transition:all .2s;overflow:hidden}.history-item:hover{color:var(--text-primary);background:#ffffff0d}.sidebar-footer{border-top:1px solid var(--border-subtle);flex-direction:column;gap:12px;margin-top:auto;padding-top:16px;display:flex}.status-indicator{color:var(--text-secondary);align-items:center;gap:8px;font-size:12px;display:flex}.dot.online{background-color:#10b981;border-radius:50%;width:8px;height:8px;box-shadow:0 0 8px #10b98180}.logout-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:13px;transition:all .2s;display:flex}.logout-btn:hover{color:#ef4444;background:#ef44441a}.chat-container{background:0 0;flex-direction:column;flex:1;display:flex;position:relative}.chat-header{border-bottom:1px solid var(--border-subtle);background:var(--bg-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:5;justify-content:space-between;align-items:center;padding:20px 32px;display:flex}.chat-title{align-items:center;gap:12px;display:flex}.messages-area{scroll-behavior:smooth;flex-direction:column;flex:1;gap:24px;padding:32px;display:flex;overflow-y:auto}.message{gap:16px;width:100%;max-width:850px;margin:0 auto;animation:.3s ease-out slideUpFade;display:flex}.message.user{flex-direction:row-reverse}.message .avatar{width:38px;height:38px;box-shadow:var(--shadow-sm);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex}.message.user .avatar{background:linear-gradient(135deg, var(--brand-accent), var(--brand-accent-hover));color:#fff}.message.ai .avatar{background:var(--bg-surface);border:1px solid var(--border-subtle);padding:4px}.message .bubble{border:1px solid var(--border-subtle);border-radius:16px;max-width:85%;padding:16px 22px;font-size:15px;line-height:1.7}.message.user .bubble{background:var(--msg-user);border-bottom-right-radius:4px}.message.ai .bubble{background:var(--msg-ai);border-bottom-left-radius:4px}.bubble p{margin-bottom:16px;line-height:1.8}.bubble p:last-child{margin-bottom:0}.bubble h1,.bubble h2,.bubble h3,.bubble h4{color:var(--text-primary);letter-spacing:-.3px;margin-top:24px;margin-bottom:12px;font-weight:700}.bubble h1{border-bottom:1px solid var(--border-subtle);padding-bottom:8px;font-size:22px}.bubble h2{font-size:18px}.bubble h3{color:var(--brand-accent);font-size:16px}.bubble ul,.bubble ol{margin-bottom:16px;margin-left:24px}.bubble li{margin-bottom:8px;line-height:1.6}.bubble b,.bubble strong{color:var(--text-primary);background:#e87c461a;border-radius:4px;padding:0 4px;font-weight:700}.bubble code{color:#10b981;background:#0006;border-radius:6px;padding:2px 6px;font-family:Courier New,Courier,monospace;font-size:14px}.bubble pre{border:1px solid var(--border-subtle);background:#000;border-radius:12px;margin-bottom:16px;padding:16px;overflow-x:auto}.input-area{background:0 0;padding:24px 32px}.input-box{background:var(--bg-surface);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border-subtle);max-width:850px;box-shadow:var(--shadow-lg);border-radius:16px;align-items:center;margin:0 auto;padding:10px 20px;transition:all .3s;display:flex}.input-box:focus-within{border-color:var(--brand-accent);box-shadow:0 0 0 4px var(--brand-glow), var(--shadow-lg)}.input-box textarea{color:var(--text-primary);resize:none;background:0 0;border:none;outline:none;flex:1;max-height:150px;padding:8px 0;font-family:inherit;font-size:15px;line-height:1.5}.input-box button{background:var(--brand-accent);color:#fff;cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;width:42px;height:42px;margin-left:12px;font-size:16px;transition:all .2s;display:flex}.input-box button:hover:not(:disabled){background:var(--brand-accent-hover);transform:scale(1.05)}.input-box button:disabled{background:var(--border-subtle);color:var(--text-muted);cursor:not-allowed}.loader{border:2px solid #fff3;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slideUpFade{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.bubble.typing-active{align-items:center;gap:6px;height:48px;display:flex}.dot{background-color:var(--text-secondary);border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite both bounce}.dot:first-child{animation-delay:-.32s}.dot:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{opacity:.3;transform:scale(0)}40%{opacity:1;transform:scale(1)}}.generative-ui-card{border:1px solid var(--border-subtle);background:#ffffff08;border-radius:12px;margin-top:20px;padding:20px;animation:.5s ease-out slideUpFade;box-shadow:inset 0 0 20px #0003}.generative-ui-card h3{color:var(--brand-accent);border-bottom:1px solid var(--border-subtle);margin-bottom:16px;padding-bottom:8px;font-size:16px}.ui-field{margin-bottom:12px}.ui-field label{color:var(--text-secondary);margin-bottom:4px;font-size:12px;display:block}.ui-field input{background:var(--bg-input);border:1px solid var(--border-subtle);width:100%;color:var(--text-primary);border-radius:8px;padding:10px;font-size:14px;transition:all .2s}.ui-field input:focus{border-color:var(--brand-accent);box-shadow:0 0 0 2px var(--brand-glow);outline:none}.ui-btn{background:var(--brand-accent);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;margin-top:8px;padding:12px;font-size:14px;font-weight:700;transition:all .2s}.ui-btn:hover{background:var(--brand-accent-hover);transform:translateY(-2px)}.widget-card{border:1px solid var(--border-subtle);background:#ffffff08;border-radius:10px;margin-bottom:12px;padding:14px;animation:.5s ease-out slideUpFade}.widget-card.alerta{border-left:3px solid #f59e0b}.widget-title{color:var(--text-primary);margin-bottom:4px;font-size:12px;font-weight:600;display:block}.sidebar-section-title{text-transform:uppercase;letter-spacing:.5px;color:var(--brand-accent);margin-bottom:12px;padding-left:4px;font-size:11px;font-weight:700}@media (width<=768px){body,#app-screen{height:100dvh;position:relative;overflow:hidden}.sidebar{display:none}.chat-container{flex-direction:column;height:100%;padding-bottom:70px;display:flex}.messages-area{overscroll-behavior:contain;flex:1;padding:12px 12px 80px;overflow-y:auto}.chat-header{flex-shrink:0;padding:10px 12px}.input-area{background:var(--bg-base);z-index:100;padding:10px;padding-bottom:calc(10px + env(safe-area-inset-bottom));position:fixed;bottom:0;left:0;right:0}.input-box{box-sizing:border-box;background:var(--bg-surface);border-radius:12px;width:100%;padding:6px 10px}.input-box textarea{max-height:80px;padding:4px 0;font-size:14px}.input-box button{flex-shrink:0;width:36px;height:36px;margin-left:8px}.message .bubble{word-wrap:break-word;max-width:92%;padding:10px 14px;font-size:14px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
