@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap");:root{--accent:#6366f1;--accent-light:#818cf8;--accent-dark:#4f46e5;--accent-glow:rgba(99,102,241,.3);--bg:#09090b;--bg-card:#111113;--bg-elevated:#18181b;--bg-hover:#27272a;--border:hsla(0,0%,100%,.07);--border-focus:var(--accent);--text-primary:#fafafa;--text-secondary:#a1a1aa;--text-muted:#52525b;--success:#22c55e;--error:#ef4444;--warning:#f59e0b;--radius:12px;--radius-sm:8px;--radius-lg:16px;--transition:0.2s cubic-bezier(0.4,0,0.2,1);--shadow:0 4px 24px rgba(0,0,0,.4);--shadow-glow:0 0 40px var(--accent-glow)}[data-theme=light]{--bg:#f4f4f5;--bg-card:#fff;--bg-elevated:#fff;--bg-hover:#f4f4f5;--border:rgba(0,0,0,.09);--text-primary:#09090b;--text-secondary:#52525b;--text-muted:#a1a1aa;--shadow:0 4px 24px rgba(0,0,0,.08)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--text-primary);min-height:100vh;-webkit-font-smoothing:antialiased;transition:background var(--transition),color var(--transition)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-hover);border-radius:99px}h1,h2,h3,h4,h5,h6{line-height:1.25;font-weight:700}a{color:var(--accent-light);text-decoration:none}a:hover{color:var(--accent)}code,pre{font-family:JetBrains Mono,monospace}.container{max-width:1200px;margin:0 auto;padding:0 24px}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-4{gap:16px}.gap-6{gap:24px}.w-full{width:100%}.text-center{text-align:center}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.font-mono{font-family:JetBrains Mono,monospace}.card{background:var(--bg-card);padding:24px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.card,.card-elevated{border:1px solid var(--border);border-radius:var(--radius)}.card-elevated{background:var(--bg-elevated);box-shadow:var(--shadow)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;font-family:Inter,sans-serif;cursor:pointer;transition:all var(--transition);border:1px solid transparent;white-space:nowrap;outline:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 0 20px var(--accent-glow)}.btn-primary:hover:not(:disabled){background:var(--accent-dark);box-shadow:0 0 30px var(--accent-glow);transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:var(--border)}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.btn-danger{background:rgba(239,68,68,.1);color:var(--error);border-color:rgba(239,68,68,.3)}.btn-danger:hover:not(:disabled){background:rgba(239,68,68,.2)}.btn-sm{padding:6px 14px;font-size:.8rem}.btn-lg{padding:14px 28px;font-size:1rem}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:.8rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em}.form-input{width:100%;padding:11px 14px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.9rem;font-family:Inter,sans-serif;transition:border-color var(--transition),box-shadow var(--transition);outline:none}.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.form-input::placeholder{color:var(--text-muted)}.form-error{color:var(--error);font-size:.8rem}.form-hint{color:var(--text-muted);font-size:.78rem}.alert{padding:12px 16px;border-radius:var(--radius-sm);font-size:.875rem;display:flex;align-items:center;gap:10px}.alert-error{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);color:#fca5a5}.alert-success{background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.3);color:#86efac}.alert-info{background:rgba(99,102,241,.1);border:1px solid rgba(99,102,241,.3);color:#a5b4fc}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(ellipse at 50% 0,rgba(99,102,241,.12) 0,transparent 70%)}.auth-card{width:100%;max-width:440px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:40px;box-shadow:var(--shadow),0 0 80px rgba(99,102,241,.08)}.auth-logo{gap:10px;margin-bottom:32px}.auth-logo,.auth-logo-icon{display:flex;align-items:center}.auth-logo-icon{width:40px;height:40px;background:var(--accent);border-radius:10px;justify-content:center;box-shadow:0 0 20px var(--accent-glow)}.auth-title{font-size:1.5rem;font-weight:800}.auth-subtitle{color:var(--text-secondary);font-size:.9rem;margin-top:4px}.dashboard-layout{display:flex;min-height:100vh}.sidebar{width:260px;min-width:260px;background:var(--bg-card);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:20px 0;position:fixed;top:0;left:0;height:100vh;overflow-y:auto;z-index:50;transition:transform var(--transition)}.sidebar-logo{gap:10px;padding:0 20px 24px;border-bottom:1px solid var(--border);margin-bottom:12px}.logo-icon,.sidebar-logo{display:flex;align-items:center}.logo-icon{width:36px;height:36px;background:var(--accent);border-radius:9px;justify-content:center;font-size:18px;box-shadow:0 0 16px var(--accent-glow)}.logo-text{font-size:1.1rem;font-weight:800}.logo-badge{font-size:.65rem;font-weight:700;background:var(--accent);color:#fff;padding:2px 6px;border-radius:99px;letter-spacing:.04em}.nav-section{padding:8px 12px 4px}.nav-section-label{font-size:.68rem;font-weight:700;color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;padding:0 8px}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition);border:none;background:none;width:100%;text-align:left;margin:1px 0}.nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-item.active{background:rgba(99,102,241,.15);color:var(--accent-light)}.nav-item svg{flex-shrink:0}.dashboard-main{flex:1 1;margin-left:260px;display:flex;flex-direction:column;min-height:100vh}.dashboard-header{background:var(--bg-card);border-bottom:1px solid var(--border);padding:16px 32px;display:flex;align-items:center;justify-content:space-between;position:-webkit-sticky;position:sticky;top:0;z-index:40;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.dashboard-content{flex:1 1;padding:32px}.chat-container{display:flex;flex-direction:column;height:calc(100vh - 140px);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.chat-messages{flex:1 1;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:20px}.chat-message{display:flex;gap:12px;max-width:85%}.chat-message.user{align-self:flex-end;flex-direction:row-reverse}.chat-bubble{padding:14px 18px;border-radius:16px;font-size:.9rem;line-height:1.6}.chat-bubble.user{background:var(--accent);color:#fff;border-bottom-right-radius:4px}.chat-bubble.assistant{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-primary);border-bottom-left-radius:4px}.chat-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;font-weight:700}.chat-avatar.user{background:var(--accent);color:#fff}.chat-avatar.assistant{background:var(--bg-elevated);border:1px solid var(--border);color:var(--accent)}.chat-input-area{padding:16px 24px;border-top:1px solid var(--border);display:flex;gap:12px;align-items:flex-end;background:var(--bg-card)}.chat-textarea{flex:1 1;padding:12px 16px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-size:.9rem;font-family:Inter,sans-serif;resize:none;outline:none;max-height:120px;min-height:48px;transition:border-color var(--transition)}.chat-textarea:focus{border-color:var(--accent)}.model-selector{display:flex;gap:6px;padding:12px 16px 0}.model-badge{padding:5px 12px;border-radius:99px;font-size:.76rem;font-weight:600;border:1px solid var(--border);cursor:pointer;transition:all var(--transition);color:var(--text-secondary);background:transparent}.model-badge.selected{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 0 12px var(--accent-glow)}.landing-hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 24px;position:relative;overflow:hidden}.landing-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0,rgba(99,102,241,.2) 0,transparent 60%),radial-gradient(ellipse at 80% 80%,rgba(139,92,246,.1) 0,transparent 50%);pointer-events:none}.hero-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 16px;background:rgba(99,102,241,.1);border:1px solid rgba(99,102,241,.3);border-radius:99px;font-size:.8rem;font-weight:600;color:var(--accent-light);margin-bottom:24px;letter-spacing:.04em}.hero-title{font-size:clamp(2.5rem,6vw,5rem);font-weight:800;line-height:1.1;letter-spacing:-.02em;margin-bottom:20px}.gradient-text{background:linear-gradient(135deg,var(--accent-light),#a78bfa,#60a5fa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-size:1.15rem;color:var(--text-secondary);max-width:560px;line-height:1.7;margin-bottom:40px}.hero-buttons{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:20px;gap:20px;margin-top:80px;text-align:left}.feature-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:28px;transition:all var(--transition);position:relative;overflow:hidden}.feature-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent),#a78bfa);opacity:0;transition:opacity var(--transition)}.feature-card:hover{border-color:rgba(99,102,241,.4);transform:translateY(-3px)}.feature-card:hover:before{opacity:1}.feature-icon{width:48px;height:48px;background:rgba(99,102,241,.1);border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:16px;color:var(--accent-light)}.feature-title{font-size:1rem;font-weight:700;margin-bottom:8px}.feature-desc{color:var(--text-secondary);font-size:.875rem;line-height:1.6}.admin-indicator{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:linear-gradient(135deg,var(--accent),#a78bfa);border-radius:99px;font-size:.72rem;font-weight:700;color:#fff;letter-spacing:.04em}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px var(--accent-glow)}50%{box-shadow:0 0 40px var(--accent-glow),0 0 60px var(--accent-glow)}}@keyframes spin{to{transform:rotate(1turn)}}.animate-in{animation:fadeInUp .5s ease forwards}.animate-delay-1{animation-delay:.1s;opacity:0}.animate-delay-2{animation-delay:.2s;opacity:0}.animate-delay-3{animation-delay:.3s;opacity:0}.spin{animation:spin 1s linear infinite}.spinner{width:18px;height:18px;border:2px solid hsla(0,0%,100%,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.color-swatches{display:flex;flex-wrap:wrap;gap:10px}.color-swatch{width:36px;height:36px;border-radius:50%;cursor:pointer;transition:transform var(--transition),box-shadow var(--transition);border:3px solid transparent}.color-swatch:hover{transform:scale(1.15)}.color-swatch.selected{border-color:#fff;box-shadow:0 0 0 2px currentColor}@media (max-width:768px){.sidebar{transform:translateX(-100%)}.sidebar.open{transform:translateX(0)}.dashboard-main{margin-left:0}.dashboard-content{padding:16px}.hero-title{font-size:2rem}}.markdown-content{line-height:1.7}.markdown-content h1,.markdown-content h2,.markdown-content h3{margin:16px 0 8px;color:var(--text-primary)}.markdown-content p{margin:8px 0;color:var(--text-primary)}.markdown-content ol,.markdown-content ul{margin:8px 0;padding-left:20px}.markdown-content li{margin:4px 0}.markdown-content code{background:var(--bg-hover);padding:2px 6px;border-radius:4px;font-size:.85em;color:var(--accent-light)}.markdown-content pre{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px;overflow-x:auto;margin:12px 0}.markdown-content pre code{background:none;padding:0}.markdown-content strong{font-weight:700;color:var(--text-primary)}.markdown-content blockquote{border-left:3px solid var(--accent);padding:8px 16px;margin:12px 0;background:rgba(99,102,241,.05);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--text-secondary)}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;padding:10px 14px;font-size:.75rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.data-table td,.data-table th{border-bottom:1px solid var(--border)}.data-table td{padding:12px 14px;font-size:.875rem;color:var(--text-secondary)}.data-table tbody tr:hover{background:var(--bg-hover)}.status-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:99px;font-size:.73rem;font-weight:600}.status-active{background:rgba(34,197,94,.1);color:#86efac}.status-inactive{background:rgba(239,68,68,.1);color:#fca5a5}.market-ticker-container{width:100%;background:var(--bg-card);border-bottom:1px solid var(--border);overflow:hidden;position:-webkit-sticky;position:sticky;top:0;z-index:50;font-family:JetBrains Mono,monospace;font-size:.75rem;padding:6px 0;white-space:nowrap}.ticker-content{display:inline-flex;gap:32px;animation:marquee 30s linear infinite;padding-right:32px}.ticker-content:hover{animation-play-state:paused}.ticker-item{display:inline-flex;align-items:center;gap:8px}.ticker-symbol{font-weight:700;color:var(--text-primary)}.ticker-price{color:var(--text-secondary)}.ticker-change{display:flex;align-items:center;gap:2px;font-weight:600}.ticker-up{color:var(--success)}.ticker-down{color:var(--error)}@keyframes marquee{0%{transform:translateX(0)}to{transform:translateX(-50%)}}