:root{--bg-primary: #0e0e11;--bg-secondary: #18181b;--bg-tertiary: #27272a;--text-primary: #f4f4f5;--text-secondary: #a1a1aa;--accent: #3b82f6;--accent-hover: #2563eb;--danger: #ef4444;--danger-hover: #dc2626;--border: #27272a;--border-focus: #3f3f46;--success: #10b981}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.btn-primary,.btn-danger{padding:.6rem 1rem;border:none;border-radius:6px;font-weight:500;font-size:.875rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem}.btn-primary{background-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-danger{background-color:transparent;color:var(--danger);border:1px solid var(--danger)}.btn-danger:hover{background-color:var(--danger);color:#fff}.btn-icon{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:.25rem;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:color .2s,background-color .2s}.btn-icon:hover{color:var(--text-primary);background-color:var(--bg-tertiary)}.btn-small{padding:.4rem .8rem;font-size:.75rem}.w-full{width:100%}.mt-4{margin-top:1rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-in{animation:fadeIn .3s ease forwards}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.pulse{animation:pulse 1.5s infinite}.join-wrapper{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;background:radial-gradient(circle at 50% -20%,#1e1e24 0%,var(--bg-primary) 100%);padding:1rem}.project-info{text-align:center;margin-bottom:2.5rem}.project-info h1{font-size:2.5rem;font-weight:700;letter-spacing:-.025em;background:linear-gradient(to right,#60a5fa,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:.5rem}.project-info p{color:var(--text-secondary);font-size:1rem}.join-container{width:100%;max-width:400px}.join-form{background-color:var(--bg-secondary);padding:2rem;border-radius:12px;border:1px solid var(--border);box-shadow:0 10px 30px #00000080}.join-form h2{font-size:1.25rem;font-weight:600;margin-bottom:1.5rem;text-align:center}.input-group{margin-bottom:1.25rem;display:flex;flex-direction:column;gap:.5rem}.input-group label{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.input-group input{width:100%;padding:.75rem 1rem;background-color:var(--bg-primary);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.875rem;transition:border-color .2s,box-shadow .2s;outline:none}.input-group input:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.join-form .btn-primary{width:100%;margin-top:1rem;padding:.75rem;font-size:1rem}.dashboard-wrapper{min-height:100vh;background-color:var(--bg-primary)}.dashboard-header{border-bottom:1px solid var(--border);background-color:var(--bg-secondary)}.dashboard-container{max-width:1000px;margin:0 auto;padding:0 1.5rem}.header-content{display:flex;justify-content:space-between;align-items:center;height:60px}.user-controls{display:flex;align-items:center;gap:1rem}.user-greeting{font-size:.875rem;color:var(--text-secondary)}.main-content{padding-top:2rem;padding-bottom:2rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.create-project-form{display:flex;gap:1rem;margin-bottom:2rem;background-color:var(--bg-secondary);padding:1rem;border-radius:8px;border:1px solid var(--border)}.create-project-form input{flex-grow:1;padding:.5rem 1rem;background-color:var(--bg-primary);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);outline:none}.create-project-form input:focus{border-color:var(--accent)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.project-card{background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;overflow:hidden;transition:border-color .2s,transform .2s}.project-card:hover{border-color:var(--accent);transform:translateY(-2px)}.project-card-header{padding:1.5rem;cursor:pointer}.project-title{font-size:1.125rem;font-weight:600;margin-bottom:.5rem}.language-badge{font-size:.75rem;padding:.2rem .5rem;background-color:var(--bg-tertiary);border-radius:4px;color:var(--text-secondary)}.project-card-footer{padding:1rem 1.5rem;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;background-color:#0000001a}.last-modified{font-size:.75rem;color:var(--text-secondary);display:flex;align-items:center;gap:.25rem}.project-actions{display:flex;gap:.5rem}.project-actions .delete:hover{color:var(--danger)}.empty-state{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;border:2px dashed var(--border);border-radius:12px;color:var(--text-secondary)}.empty-icon{margin-bottom:1rem;color:var(--border-focus)}.editor-container{display:flex;height:100vh;width:100vw;overflow:hidden;background-color:var(--bg-primary)}.sidebar{width:260px;min-width:260px;background-color:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;height:100%}.sidebar-header{padding:1rem;border-bottom:1px solid var(--border)}.brand{font-size:1.25rem;font-weight:700;letter-spacing:-.025em;color:var(--text-primary)}.sidebar-section{padding:1.25rem 1rem;border-bottom:1px solid var(--border)}.sidebar-section.flex-grow{flex-grow:1;overflow-y:auto}.sidebar-footer{border-bottom:none;border-top:1px solid var(--border)}.section-title{font-size:.75rem;font-weight:600;color:var(--text-secondary);margin-bottom:.75rem;display:flex;justify-content:space-between;align-items:center}.badge{background-color:var(--bg-tertiary);padding:.1rem .4rem;border-radius:12px;font-size:.7rem}.room-info{display:flex;align-items:center;justify-content:space-between;background-color:var(--bg-primary);padding:.5rem .75rem;border-radius:6px;border:1px solid var(--border)}.room-id{font-family:Fira Code,monospace;font-size:.8rem;color:var(--text-primary)}.copy-success{display:block;font-size:.75rem;color:var(--success);margin-top:.5rem;text-align:right}.user-list{list-style:none;display:flex;flex-direction:column;gap:.5rem}.user-item{display:flex;align-items:center;gap:.75rem;padding:.4rem;border-radius:6px;transition:background-color .2s}.user-item:hover{background-color:var(--bg-tertiary)}.avatar{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#a855f7);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#fff;flex-shrink:0}.user-name{font-size:.875rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.typing-indicator{margin-top:1rem;height:20px;font-size:.75rem;color:var(--accent);display:flex;align-items:center}.typing-indicator span{display:flex;align-items:center;gap:.25rem}.select-wrapper{position:relative}.select-wrapper:after{content:"▼";font-size:.6rem;position:absolute;right:1rem;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--text-secondary)}.language-selector{width:100%;padding:.6rem 1rem;background-color:var(--bg-primary);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.875rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none}.language-selector:focus{border-color:var(--accent)}.main-content{flex-grow:1;display:flex;flex-direction:column;background-color:#1e1e1e}.editor-header{height:40px;background-color:var(--bg-secondary);display:flex;border-bottom:1px solid #1e1e1e}.file-tabs{display:flex;height:100%}.tab{padding:0 1rem;display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--text-secondary);border-right:1px solid var(--border);cursor:pointer;background-color:var(--bg-tertiary)}.tab.active{background-color:#1e1e1e;color:var(--text-primary);border-top:2px solid var(--accent)}.editor-wrapper{flex-grow:1;width:100%;height:calc(100% - 40px)}@media (max-width: 768px){.editor-container{flex-direction:column}.sidebar{width:100%;min-width:100%;height:auto;max-height:50vh;border-right:none;border-bottom:1px solid var(--border)}.sidebar-section.flex-grow{max-height:150px}.editor-wrapper{height:calc(50vh - 40px)}}
