:root{--bg-900:#0a0a0f;--bg-800:#111118;--bg-700:#18181f;--bg-600:#21212c;--bg-500:#2a2a38;--border:#ffffff12;--border-hover:#ffffff24;--lime-400:#c8f538;--lime-500:#a8e030;--lime-600:#88c020;--lime-glow:#a8e0302e;--lime-glow-sm:#a8e03014;--text-100:#f4f4f8;--text-200:#c8c8d8;--text-400:#8888a0;--text-600:#55556a;--red-400:#ff5c7a;--red-glow:#ff5c7a26;--yellow-400:#ffc947;--yellow-glow:#ffc9471f;--blue-400:#60a5fa;--blue-glow:#60a5fa1f;--client-bubble:#1e2a3a;--dev-bubble:#1a2a1a;--ai-bubble:#1e1e2e;--radius-sm:8px;--radius-md:10px;--radius-lg:12px;--radius-xl:16px;--sidebar-width:340px;--chatlist-width:300px;--transition:.2s cubic-bezier(.4, 0, .2, 1);--transition-slow:.35s cubic-bezier(.4, 0, .2, 1)}:root[data-theme=light]{--bg-900:#f6f7f9;--bg-800:#fff;--bg-700:#f0f2f5;--bg-600:#e5e8ee;--bg-500:#d8dde6;--border:#0f172a1a;--border-hover:#0f172a33;--lime-400:#5f8f08;--lime-500:#4f7c06;--lime-600:#416804;--lime-glow:#5f8f082e;--lime-glow-sm:#5f8f0814;--text-100:#111827;--text-200:#273244;--text-400:#667085;--text-600:#98a2b3;--red-400:#dc3759;--red-glow:#dc37591f;--yellow-400:#b7791f;--yellow-glow:#b7791f1f;--blue-400:#2563eb;--blue-glow:#2563eb1c;--client-bubble:#eaf2ff;--dev-bubble:#edf8dd;--ai-bubble:#f0edff}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{background:var(--bg-900);color:var(--text-100);-webkit-font-smoothing:antialiased;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--bg-500);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-600)}h1{letter-spacing:-.03em;font-size:2.2rem;font-weight:700;line-height:1.15}h2{letter-spacing:-.02em;font-size:1.5rem;font-weight:600}h3{font-size:1.1rem;font-weight:600}p{line-height:1.65}.text-muted{color:var(--text-400)}.text-xs{font-size:11px}.text-sm{font-size:13px}.flex{display:flex}.items-center{align-items:center}.gap-2{gap:8px}.gap-3{gap:12px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.btn{cursor:pointer;transition:var(--transition);white-space:nowrap;border:none;align-items:center;gap:8px;font-family:inherit;font-weight:500;text-decoration:none;display:inline-flex}.btn:focus-visible,button:focus-visible,a:focus-visible,.input:focus-visible,.chat-input:focus-visible{outline:2px solid var(--lime-400);outline-offset:2px}.btn-primary{background:var(--lime-400);color:#0a0a0f;border-radius:var(--radius-md);padding:10px 22px;font-size:14px;font-weight:600}.btn-primary:hover{background:var(--lime-500);box-shadow:0 6px 20px var(--lime-glow);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-ghost{color:var(--text-200);border-radius:var(--radius-sm);border:1px solid var(--border);background:0 0;padding:8px 14px;font-size:13px}.btn-ghost:hover{background:var(--bg-600);border-color:var(--border-hover);color:var(--text-100)}.btn-danger{color:var(--red-400);border-radius:var(--radius-sm);background:#ff5c7a1f;border:1px solid #ff5c7a33;padding:8px 14px;font-size:13px}.btn-danger:hover{background:#ff5c7a33}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important}.input{background:var(--bg-700);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-100);transition:var(--transition);outline:none;width:100%;padding:10px 14px;font-family:inherit;font-size:14px}.input::placeholder{color:var(--text-600)}.input:focus{border-color:var(--lime-400);box-shadow:0 0 0 3px var(--lime-glow-sm)}.avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:13px;font-weight:600;display:flex}.avatar-client{background:var(--client-bubble);color:var(--blue-400);border:1px solid var(--blue-glow)}.avatar-developer{background:var(--dev-bubble);color:var(--lime-400);border:1px solid var(--lime-glow-sm)}.avatar-ai{color:#a78bfa;background:#1a1a28;border:1px solid #a78bfa33}.badge{border-radius:100px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge-lime{background:var(--lime-glow);color:var(--lime-400)}.badge-red{background:var(--red-glow);color:var(--red-400)}.badge-yellow{background:var(--yellow-glow);color:var(--yellow-400)}.badge-blue{background:var(--blue-glow);color:var(--blue-400)}.badge-purple{color:#a78bfa;background:#a78bfa1f}.glass{border:1px solid var(--border);-webkit-backdrop-filter:blur(20px);background:#18181feb}:root[data-theme=light] .glass{background:#ffffffeb}.theme-toggle{justify-content:center;align-items:center;width:36px;height:36px;padding:0!important}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slideInRight{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:translate(0)}}.animate-fade-up{animation:.4s both fadeUp}.animate-fade-in{animation:.3s both fadeIn}.animate-slide-right{animation:.35s both slideInRight}.animate-slide-left{animation:.35s both slideInLeft}.animate-spin{animation:1s linear infinite spin}.logo{align-items:center;gap:10px;text-decoration:none;display:flex}.logo-icon{background:var(--lime-400);color:#0a0a0f;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.logo-text{color:var(--text-100);letter-spacing:-.02em;font-size:18px;font-weight:700}.landing{background:var(--bg-900);min-height:100vh;position:relative;overflow-y:auto}.landing-glow{filter:blur(100px);pointer-events:none;z-index:0;border-radius:50%;position:absolute}.landing-glow--1{background:var(--lime-glow);opacity:.5;width:600px;height:600px;top:-200px;right:-100px}.landing-glow--2{background:#60a5fa0f;width:400px;height:400px;bottom:0;left:-100px}.landing-nav{z-index:100;border-bottom:1px solid var(--border);border-radius:0;justify-content:space-between;align-items:center;padding:16px 32px;display:flex;position:sticky;top:0}.landing-nav-actions{align-items:center;gap:12px;display:flex}.landing-hero{text-align:center;z-index:1;flex-direction:column;align-items:center;padding:100px 24px 80px;display:flex;position:relative}.landing-badge{margin-bottom:24px}.landing-title{letter-spacing:-.04em;margin-bottom:24px;font-size:clamp(2.4rem,5vw,3.8rem);font-weight:800;line-height:1.1}.landing-title-accent{background:linear-gradient(135deg, var(--lime-400), #60a5fa);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.landing-desc{max-width:560px;color:var(--text-400);margin-bottom:36px;font-size:17px;line-height:1.7}.landing-cta{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.landing-cta-primary{padding:14px 32px;font-size:15px}.landing-cta-secondary{padding:14px 24px;font-size:15px}.landing-join{flex-direction:column;align-items:center;gap:8px;margin-top:40px;display:flex}.landing-join-link{color:var(--text-200);border-radius:var(--radius-sm);background:var(--bg-800);border:1px solid var(--border);transition:var(--transition);align-items:center;gap:6px;padding:6px 12px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.landing-join-link:hover{background:var(--bg-700);border-color:var(--border-hover);color:var(--text-100)}.landing-features{z-index:1;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;max-width:960px;margin:0 auto;padding:0 24px 80px;display:grid;position:relative}.feature-card{border-radius:var(--radius-lg);padding:24px}.feature-icon{border-radius:var(--radius-md);background:var(--lime-glow-sm);border:1px solid var(--lime-glow);width:38px;height:38px;color:var(--lime-400);justify-content:center;align-items:center;margin-bottom:14px;display:flex}.feature-card h3{margin-bottom:6px}.dashboard{height:100%;display:flex;overflow:hidden}.dash-sidebar{border-right:1px solid var(--border);border-radius:0;flex-direction:column;flex-shrink:0;width:240px;padding:20px 16px;display:flex}.dash-logo{margin-bottom:24px}.dash-user{background:var(--bg-700);border-radius:var(--radius-md);align-items:center;gap:10px;margin-bottom:20px;padding:12px;display:flex}.dash-user-name{margin-bottom:4px;font-size:13px;font-weight:600}.dash-nav{flex-direction:column;flex:1;gap:4px;display:flex}.dash-nav-item{border-radius:var(--radius-sm);color:var(--text-400);cursor:pointer;transition:var(--transition);text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:9px 12px;font-family:inherit;font-size:13px;font-weight:500;display:flex}.dash-nav-item:hover{background:var(--bg-700);color:var(--text-100)}.dash-nav-item.active{background:var(--lime-glow-sm);color:var(--lime-400)}.dash-logout,.dash-theme{justify-content:center;margin-top:8px}.dash-main{flex:1;padding:32px;overflow-y:auto}.dash-header{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}.dash-header h2{margin-bottom:2px}.new-chat-form{border-radius:var(--radius-md);align-items:center;gap:10px;margin-bottom:16px;padding:14px;display:flex}.new-chat-form .input{flex:1}.chat-list{flex-direction:column;gap:10px;display:flex}.chat-list-empty{color:var(--text-600);flex-direction:column;align-items:center;gap:8px;padding:60px 0;display:flex}.chat-item{border-radius:var(--radius-lg);cursor:pointer;transition:var(--transition);text-align:left;background:var(--bg-800);border:1px solid var(--border);align-items:center;gap:14px;width:100%;padding:16px 18px;display:flex}.chat-item:hover{border-color:var(--border-hover);background:var(--bg-700);transform:translateY(-1px)}.chat-item-icon{background:var(--lime-glow-sm);border:1px solid var(--lime-glow);border-radius:var(--radius-md);width:44px;height:44px;color:var(--lime-400);flex-shrink:0;justify-content:center;align-items:center;display:flex}.chat-item-body{flex:1;min-width:0}.chat-item-top{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.chat-item-title{font-size:14px;font-weight:600}.chat-item-time{align-items:center;gap:4px;display:flex}.chat-item-preview{white-space:nowrap;text-overflow:ellipsis;margin-bottom:8px;overflow:hidden}.chat-item-meta{gap:6px;display:flex}.chat-item-arrow{flex-shrink:0}.join-section{border-radius:var(--radius-xl);margin-top:32px;padding:24px}.join-section-header{align-items:center;gap:12px;margin-bottom:0;display:flex}.join-section-header.has-form{margin-bottom:20px}.join-toggle{margin-left:auto;padding:6px 10px;font-size:12px}.join-form{border-top:1px solid var(--border);flex-direction:column;gap:12px;margin-top:16px;padding-top:16px;animation:.3s both fadeIn;display:flex}.join-form .input{font-family:Courier New,monospace;font-size:13px}.join-form button{justify-content:center;width:100%}.join-error{background:var(--red-glow);color:var(--red-400);border-radius:var(--radius-sm);text-align:center;border:1px solid #ff5c7a40;padding:10px 14px;font-size:13px}@media (width<=760px){.landing-nav{padding:12px 16px}.landing-nav-actions{gap:8px}.landing-nav-actions .btn:not(.theme-toggle){padding-left:10px;padding-right:10px}.landing-hero{padding:72px 18px 56px}.landing-title{font-size:2.35rem}.landing-desc{font-size:15px}.landing-cta,.landing-cta .btn{width:100%}.landing-cta .btn{justify-content:center}.landing-features{grid-template-columns:1fr;padding:0 18px 56px}.dashboard{flex-direction:column;overflow-y:auto}.dash-sidebar{border-right:0;border-bottom:1px solid var(--border);width:100%;padding:14px 16px}.dash-logo{margin-bottom:14px}.dash-user{margin-bottom:12px}.dash-nav{flex-direction:row;flex:initial;padding-bottom:2px;overflow-x:auto}.dash-nav-item{flex-shrink:0}.dash-logout,.dash-theme{margin-top:12px}.dash-main{padding:20px 16px 32px;overflow:visible}.dash-header,.new-chat-form,.join-section-header{flex-direction:column;align-items:stretch}.dash-header .btn,.new-chat-form .btn,.join-toggle{justify-content:center;width:100%}.join-toggle{margin-left:0}.chat-item{align-items:flex-start;padding:14px}.chat-item-top{flex-direction:column;align-items:flex-start;gap:4px}}html,body{height:100%}#app-root{flex-direction:column;height:100%;display:flex}
