.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:2rem}.login-container{width:100%;max-width:400px;background:var(--bg-card);border:1px solid var(--border);border-radius:20px;padding:2.5rem}.login-header{text-align:center;margin-bottom:2rem}.login-logo{font-size:4rem;margin-bottom:1rem}.login-header h1{font-size:1.75rem;font-weight:700;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:.5rem}.login-header p{color:var(--text-muted);font-size:.9rem}.login-form{display:flex;flex-direction:column;gap:1.25rem}.login-error{background:#ef44441a;border:1px solid var(--error);color:var(--error);padding:.75rem 1rem;border-radius:10px;font-size:.875rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.875rem;font-weight:500;color:var(--text-muted)}.form-group input{padding:.875rem 1rem;background:var(--bg);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:1rem;transition:border-color .2s}.form-group input:focus{outline:none;border-color:var(--primary)}.form-group input::placeholder{color:var(--text-muted)}.login-btn{padding:1rem;background:var(--gradient);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;transition:transform .2s,opacity .2s;margin-top:.5rem}.login-btn:hover:not(:disabled){transform:translateY(-2px)}.login-btn:disabled{opacity:.7;cursor:not-allowed}.login-footer{margin-top:2rem;text-align:center}.login-footer p{color:var(--text-muted);font-size:.875rem;margin-bottom:1rem}.team-icons{display:flex;justify-content:center;gap:.75rem}.team-icons span{font-size:1.5rem;opacity:.7;transition:opacity .2s,transform .2s;cursor:default}.team-icons span:hover{opacity:1;transform:scale(1.2)}.dashboard{max-width:1200px;margin:0 auto}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.dashboard-header h1{font-size:1.75rem;margin-bottom:.25rem}.dashboard-header p{color:var(--text-muted)}.btn-primary{padding:.75rem 1.5rem;background:var(--gradient);color:#fff;border:none;border-radius:10px;font-weight:600;transition:transform .2s}.btn-primary:hover{transform:translateY(-2px)}.btn-secondary{padding:.75rem 1.5rem;background:transparent;color:var(--text);border:1px solid var(--border);border-radius:10px;font-weight:500}.status-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:1.5rem;margin-bottom:2rem}.status-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.status-header h3{font-size:1rem}.status-badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600}.status-badge.online{background:#10b98133;color:var(--success)}.status-badge.offline{background:#ef444433;color:var(--error)}.models-list{display:flex;gap:.5rem;flex-wrap:wrap}.model-chip{padding:.5rem 1rem;background:var(--bg);border-radius:8px;font-size:.875rem}.model-chip span{color:var(--text-muted);font-size:.75rem}.section{margin-bottom:2rem}.section h2{font-size:1.25rem;margin-bottom:1rem}.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.team-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1.25rem;text-align:center;transition:transform .2s,border-color .2s}.team-card:hover{transform:translateY(-2px);border-color:var(--primary)}.team-card.cto{background:linear-gradient(135deg,#6366f11a,#8b5cf61a);border-color:var(--primary)}.team-icon{font-size:2rem;display:block;margin-bottom:.5rem}.team-card h4{font-size:.9rem;margin-bottom:.25rem}.team-card p{font-size:.75rem;color:var(--text-muted);margin-bottom:.5rem}.team-model{font-size:.7rem;padding:.25rem .5rem;background:var(--bg);border-radius:4px;color:var(--text-muted)}.empty-state{background:var(--bg-card);border:2px dashed var(--border);border-radius:16px;padding:3rem;text-align:center}.empty-state p{color:var(--text-muted);margin-bottom:1rem}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.project-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1.25rem;cursor:pointer;transition:transform .2s,border-color .2s}.project-card:hover{transform:translateY(-2px);border-color:var(--primary)}.project-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.project-header h4{font-size:1rem}.project-status{padding:.25rem .5rem;border-radius:6px;font-size:.7rem;color:#fff;text-transform:capitalize}.project-card p{font-size:.875rem;color:var(--text-muted);margin-bottom:1rem}.project-footer{font-size:.75rem;color:var(--text-muted)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:2rem;width:100%;max-width:450px}.modal h3{margin-bottom:1.5rem}.modal .form-group{margin-bottom:1rem}.modal .form-group label{display:block;font-size:.875rem;color:var(--text-muted);margin-bottom:.5rem}.modal .form-group input,.modal .form-group textarea{width:100%;padding:.75rem;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:1rem}.modal .form-group input:focus,.modal .form-group textarea:focus{outline:none;border-color:var(--primary)}.modal-actions{display:flex;gap:1rem;margin-top:1.5rem}.modal-actions button{flex:1}.loading{display:flex;align-items:center;justify-content:center;height:50vh;color:var(--text-muted)}.project-page{height:calc(100vh - 4rem);display:flex;flex-direction:column}.project-header{padding-bottom:1rem;border-bottom:1px solid var(--border);margin-bottom:1rem}.project-info h1{font-size:1.5rem;margin-bottom:.5rem}.project-meta{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.status-badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:capitalize;background:var(--border)}.status-badge.planning{background:#f59e0b;color:#fff}.status-badge.designing{background:#8b5cf6;color:#fff}.status-badge.developing{background:#3b82f6;color:#fff}.status-badge.reviewing{background:#6366f1;color:#fff}.status-badge.complete{background:#10b981;color:#fff}.phase-badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;background:var(--bg-light);color:var(--text-muted)}.connection-status{font-size:.75rem;color:var(--text-muted)}.connection-status.connected{color:var(--success)}.project-layout{display:grid;grid-template-columns:1fr 300px;gap:1rem;flex:1;min-height:0}.chat-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;display:flex;flex-direction:column;overflow:hidden}.chat-tabs{display:flex;border-bottom:1px solid var(--border)}.chat-tabs button{flex:1;padding:1rem;background:transparent;border:none;color:var(--text-muted);font-weight:500;transition:all .2s}.chat-tabs button:hover{color:var(--text);background:var(--bg)}.chat-tabs button.active{color:var(--primary);box-shadow:inset 0 -2px 0 var(--primary)}.messages-container{flex:1;overflow-y:auto;padding:1.5rem}.welcome-message{text-align:center;padding:2rem 1rem}.welcome-icon{font-size:4rem;margin-bottom:1rem}.welcome-message h3{margin-bottom:.5rem;color:var(--text)}.welcome-message>p{color:var(--text-muted);margin-bottom:1.5rem;max-width:400px;margin-left:auto;margin-right:auto}.example-prompts{display:flex;flex-direction:column;gap:.5rem;max-width:350px;margin:0 auto}.example-prompts button{padding:.875rem 1rem;background:var(--bg);border:1px solid var(--border);border-radius:10px;color:var(--text);text-align:left;transition:all .2s;font-size:.9rem}.example-prompts button:hover{border-color:var(--primary);background:var(--bg-light)}.message{display:flex;gap:.75rem;margin-bottom:1.25rem}.message-avatar{width:38px;height:38px;background:var(--bg);border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1.1rem}.message.user .message-avatar{background:var(--primary)}.message.assistant .message-avatar{background:var(--gradient)}.message.system .message-avatar{background:var(--secondary);font-size:.9rem}.message.error .message-avatar{background:var(--error)}.message-content{flex:1;background:var(--bg);padding:1rem 1.25rem;border-radius:4px 16px 16px}.message.user .message-content{background:#6366f11a;border:1px solid rgba(99,102,241,.2);border-top-left-radius:16px;border-top-right-radius:4px}.message.system .message-content{background:#8b5cf61a;border:1px solid rgba(139,92,246,.2);padding:.75rem 1rem;font-size:.9rem}.message-content p{white-space:pre-wrap;word-break:break-word;line-height:1.6}.message-questions{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.question-item{padding:.5rem .75rem;margin-top:.5rem;background:var(--bg-card);border-radius:8px;font-size:.9rem;color:var(--primary)}.message-plan{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.message-plan strong{color:var(--text)}.message-plan ol{margin:.5rem 0 0 1.25rem}.message-plan li{margin-bottom:.35rem;color:var(--text-muted)}.message-actions{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.message-actions strong{display:block;margin-bottom:.5rem}.action-item{display:flex;gap:.75rem;align-items:flex-start;margin-top:.5rem;padding:.625rem .75rem;background:var(--bg-card);border-radius:8px}.action-agent{padding:.2rem .6rem;background:var(--gradient);color:#fff;border-radius:6px;font-size:.7rem;font-weight:600;text-transform:uppercase;flex-shrink:0}.action-task{font-size:.875rem;color:var(--text-muted);line-height:1.4}.ready-to-execute{margin-top:1rem;padding:1rem;background:#10b9811a;border:1px solid rgba(16,185,129,.3);border-radius:10px;text-align:center}.ready-to-execute p{margin-bottom:.75rem;color:var(--success);font-weight:500}.ready-to-execute button{padding:.75rem 1.5rem;background:var(--success);color:#fff;border:none;border-radius:8px;font-weight:600;font-size:.9rem;transition:transform .2s,opacity .2s}.ready-to-execute button:hover:not(:disabled){transform:scale(1.02)}.ready-to-execute button:disabled{opacity:.7}.typing-indicator{display:flex;gap:4px;padding:4px 0}.typing-indicator span{width:8px;height:8px;background:var(--text-muted);border-radius:50%;animation:typing 1.4s infinite}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-6px);opacity:1}}.chat-input{display:flex;gap:.75rem;padding:1rem;border-top:1px solid var(--border);background:var(--bg)}.chat-input input{flex:1;padding:1rem 1.25rem;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;color:var(--text);font-size:1rem}.chat-input input:focus{outline:none;border-color:var(--primary)}.chat-input input::placeholder{color:var(--text-muted)}.chat-input button{padding:1rem 1.25rem;background:var(--gradient);border:none;border-radius:12px;font-size:1.25rem;transition:transform .2s,opacity .2s}.chat-input button:hover:not(:disabled){transform:scale(1.05)}.chat-input button:disabled{opacity:.5}.preview-container{flex:1;display:flex;flex-direction:column;overflow:hidden}.preview-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--bg);border-bottom:1px solid var(--border);font-size:.875rem}.preview-header button{background:transparent;border:none;color:var(--text-muted);font-size:1.25rem;padding:.25rem .5rem;border-radius:4px}.preview-header button:hover{background:var(--bg-card)}.code-preview{flex:1;margin:0;padding:1rem;overflow:auto;font-family:Monaco,Menlo,Courier New,monospace;font-size:.8rem;line-height:1.7;background:#1a1a2e;color:#e2e8f0;-moz-tab-size:2;tab-size:2}.no-preview{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.side-panel{display:flex;flex-direction:column;gap:1rem;overflow-y:auto}.panel-section{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1rem}.panel-section h3{font-size:.9rem;margin-bottom:1rem;color:var(--text)}.status-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.status-item{background:var(--bg);padding:.75rem;border-radius:8px;text-align:center}.status-value{display:block;font-size:1.1rem;font-weight:700;color:var(--primary);text-transform:capitalize}.status-label{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.execute-btn{width:100%;margin-top:1rem;padding:.875rem;background:var(--gradient);color:#fff;border:none;border-radius:10px;font-weight:600;font-size:.9rem;transition:transform .2s,opacity .2s}.execute-btn:hover:not(:disabled){transform:translateY(-2px)}.execute-btn:disabled{opacity:.6}.file-tree{max-height:350px;overflow-y:auto}.file-folder{padding:.25rem 0;color:var(--text-muted);font-size:.85rem}.file-link{padding:.4rem .5rem;border-radius:6px;cursor:pointer;transition:background .2s;font-size:.8rem;color:var(--text-muted)}.file-link:hover{background:var(--bg);color:var(--text)}.no-files{color:var(--text-muted);font-size:.85rem;text-align:center;padding:1.5rem .5rem}.loading{display:flex;align-items:center;justify-content:center;height:50vh;color:var(--text-muted);font-size:1.1rem}@media (max-width: 1024px){.project-layout{grid-template-columns:1fr}.side-panel{display:none}}.preview-badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;background:#10b98133;color:var(--success)}.live-preview-container{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#0a0a14}.preview-start{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem}.preview-start-icon{font-size:4rem;margin-bottom:1rem}.preview-start h3{margin-bottom:.5rem;color:var(--text)}.preview-start p{color:var(--text-muted);margin-bottom:1.5rem}.start-preview-btn{padding:1rem 2rem;background:var(--gradient);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,opacity .2s}.start-preview-btn:hover:not(:disabled){transform:scale(1.05)}.start-preview-btn:disabled{opacity:.7;cursor:not-allowed}.preview-toolbar{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--bg-card);border-bottom:1px solid var(--border)}.preview-sizes{display:flex;gap:.25rem}.preview-sizes button{padding:.5rem .75rem;background:transparent;border:1px solid var(--border);border-radius:6px;font-size:1rem;cursor:pointer;transition:all .2s}.preview-sizes button:hover{background:var(--bg)}.preview-sizes button.active{background:var(--primary);border-color:var(--primary)}.preview-actions{display:flex;gap:.5rem}.preview-actions button{padding:.5rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;font-size:1rem;cursor:pointer;transition:all .2s}.preview-actions button:hover{background:var(--bg-light);border-color:var(--text-muted)}.preview-frame-wrapper{flex:1;display:flex;justify-content:center;align-items:flex-start;padding:1rem;overflow:auto;background:#1a1a2e}.preview-iframe{height:100%;min-height:500px;border:none;border-radius:8px;background:#fff;box-shadow:0 4px 20px #0000004d;transition:width .3s ease}.preview-info{display:flex;flex-direction:column;gap:.75rem}.preview-info p{color:var(--success);font-size:.9rem}.stop-btn{padding:.625rem 1rem;background:transparent;color:var(--error);border:1px solid var(--error);border-radius:8px;font-size:.875rem;cursor:pointer;transition:all .2s}.stop-btn:hover{background:var(--error);color:#fff}.preview-sizes button:nth-child(2){transform:rotate(90deg)}.layout{display:flex;min-height:100vh}.sidebar{width:260px;background:var(--bg-card);border-right:1px solid var(--border);display:flex;flex-direction:column;position:fixed;height:100vh}.sidebar-header{padding:1.5rem;border-bottom:1px solid var(--border)}.logo{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.logo-icon{font-size:1.75rem}.logo-text{font-size:1.25rem;font-weight:700;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.logo-badge{display:inline-block;padding:.25rem .75rem;background:var(--gradient);color:#fff;font-size:.7rem;font-weight:600;border-radius:20px;text-transform:uppercase;letter-spacing:.05em}.sidebar-nav{flex:1;padding:1rem;display:flex;flex-direction:column;gap:.5rem}.sidebar-nav a{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;color:var(--text-muted);border-radius:10px;transition:all .2s}.sidebar-nav a:hover{background:var(--bg-light);color:var(--text)}.sidebar-nav a.active{background:var(--gradient);color:#fff}.nav-icon{font-size:1.25rem}.sidebar-footer{padding:1rem;border-top:1px solid var(--border)}.user-info{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.user-avatar{width:40px;height:40px;background:var(--bg-light);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.25rem}.user-details{display:flex;flex-direction:column}.user-name{font-weight:600;font-size:.9rem}.user-role{font-size:.75rem;color:var(--text-muted);text-transform:capitalize}.logout-btn{width:100%;padding:.75rem;background:transparent;color:var(--text-muted);border:1px solid var(--border);border-radius:8px;font-size:.875rem;transition:all .2s}.logout-btn:hover{background:var(--error);color:#fff;border-color:var(--error)}.main-content{flex:1;margin-left:260px;padding:2rem;min-height:100vh}@media (max-width: 768px){.sidebar{width:100%;height:auto;position:relative}.main-content{margin-left:0}}*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #6366f1;--primary-dark: #4f46e5;--secondary: #8b5cf6;--success: #10b981;--warning: #f59e0b;--error: #ef4444;--bg: #0f0f1a;--bg-light: #1a1a2e;--bg-card: #16162a;--border: #2a2a4a;--text: #e2e8f0;--text-muted: #94a3b8;--gradient: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;background:var(--bg)}.loading-spinner{width:50px;height:50px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}button{cursor:pointer;font-family:inherit}input,textarea{font-family:inherit}a{color:var(--primary);text-decoration:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}
