:root,[data-theme=light]{--bg-primary: #f5f5f5;--bg-secondary: #ffffff;--bg-tertiary: #ebebeb;--border: #d4d4d4;--text-primary: #1a1a1a;--text-secondary: #555;--text-muted: #888;--accent: #2563eb;--accent-hover: #1d4ed8;--danger: #dc2626;--success: #16a34a;--diff-add: #d1fae5;--diff-remove: #fee2e2;--terminal-bg: #1e1e1e;--terminal-text: #d4d4d4;--sidebar-width: 260px;--notes-width: 280px}[data-theme=dark]{--bg-primary: #0d1117;--bg-secondary: #161b22;--bg-tertiary: #21262d;--border: #30363d;--text-primary: #e6edf3;--text-secondary: #8b949e;--text-muted: #6e7681;--accent: #58a6ff;--accent-hover: #79b8ff;--danger: #f85149;--success: #3fb950;--diff-add: #0d2818;--diff-remove: #2d1214;--terminal-bg: #0d1117;--terminal-text: #c9d1d9}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.5}button{cursor:pointer;font-family:inherit}input,textarea{font-family:inherit}a{color:var(--accent)}.app{min-height:100vh}.home{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;gap:2rem}.home-header{text-align:center}.home-header h1{font-size:2.5rem;font-weight:700;margin-bottom:.5rem}.home-header p{color:var(--text-secondary);font-size:1.1rem}.home-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:2rem;width:100%;max-width:420px;display:flex;flex-direction:column;gap:1rem}.home-card h2{font-size:1.1rem;font-weight:600}.form-group{display:flex;flex-direction:column;gap:.4rem}.form-group label{font-size:.85rem;color:var(--text-secondary)}.form-group input{padding:.6rem .8rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-tertiary);color:var(--text-primary);font-size:1rem}.form-group input:focus{outline:2px solid var(--accent);outline-offset:-1px}.invite-input{font-family:Courier New,monospace;letter-spacing:.3em;text-transform:lowercase;text-align:center;font-size:1.4rem!important}.btn{padding:.65rem 1.2rem;border:none;border-radius:6px;font-size:.95rem;font-weight:500;transition:background .15s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--border)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{opacity:.9}.btn:disabled{opacity:.5;cursor:not-allowed}.divider{display:flex;align-items:center;gap:1rem;color:var(--text-muted);font-size:.85rem}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.error-msg{color:var(--danger);font-size:.85rem}.theme-toggle-home{position:fixed;top:1rem;right:1rem}.stream-page{height:100vh;display:flex;flex-direction:column;overflow:hidden}.stream-toolbar{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0;flex-wrap:wrap}.stream-toolbar .code-badge{font-family:Courier New,monospace;font-size:1rem;font-weight:600;letter-spacing:.15em;padding:.25rem .6rem;background:var(--bg-tertiary);border-radius:4px}.stream-toolbar .role-badge{font-size:.75rem;padding:.15rem .5rem;border-radius:999px;background:var(--accent);color:#fff;text-transform:uppercase;font-weight:600}.stream-toolbar .role-badge.viewer{background:var(--text-muted)}.stream-toolbar .role-badge.editor{background:var(--success)}.toolbar-spacer{flex:1}.toolbar-actions{display:flex;gap:.5rem;flex-wrap:wrap}.toolbar-actions .btn{padding:.4rem .8rem;font-size:.8rem}.stream-body{flex:1;display:flex;overflow:hidden}.stream-body.terminal-focus .change-sidebar,.stream-body.terminal-focus .editor-panel,.stream-body.terminal-focus .notes-sidebar{display:none}.stream-body.terminal-focus .terminal-panel{flex:1}.change-sidebar,.notes-sidebar{width:var(--sidebar-width);flex-shrink:0;background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;min-height:0}.notes-sidebar{border-right:none;border-left:1px solid var(--border);width:var(--notes-width)}.panel-header{padding:.6rem .8rem;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);border-bottom:1px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:space-between}.change-list{flex:1;overflow-y:auto;padding:.5rem;min-height:0}.change-list-scroll{flex:1 1 0;min-height:80px}.file-tree-panel{border-top:1px solid var(--border)}.file-tree{display:flex;flex-direction:column;gap:.1rem}.tree-folder-btn,.tree-file{display:flex;align-items:center;gap:.35rem;width:100%;border:none;background:transparent;color:var(--text-primary);font-size:.78rem;text-align:left;padding:.3rem .5rem;border-radius:4px;cursor:pointer}.tree-folder-btn:hover,.tree-file:hover{background:var(--bg-tertiary)}.tree-file.active{background:var(--bg-tertiary);color:var(--accent)}.tree-icon{font-size:.7rem;opacity:.85;flex-shrink:0}.change-item{padding:.5rem .6rem;border-radius:6px;cursor:pointer;margin-bottom:.25rem;border:1px solid transparent;font-size:.8rem}.change-item:hover{background:var(--bg-tertiary)}.change-item.active{background:var(--bg-tertiary);border-color:var(--accent)}.change-item .change-seq{font-family:monospace;color:var(--accent);font-weight:600}.change-item .change-file{font-family:monospace;font-size:.75rem;color:var(--text-primary);word-break:break-all}.change-item .change-meta{font-size:.7rem;color:var(--text-muted);margin-top:.15rem}.change-item .change-action{font-size:.65rem;text-transform:uppercase;color:var(--success);font-weight:600}.center-panel{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.editor-panel{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}.file-tabs{display:flex;gap:0;background:var(--bg-secondary);border-bottom:1px solid var(--border);overflow-x:auto;flex-shrink:0}.file-tab{padding:.45rem .8rem;font-size:.8rem;font-family:monospace;border:none;background:transparent;color:var(--text-secondary);border-right:1px solid var(--border);white-space:nowrap;display:inline-flex;align-items:center;gap:.4rem}.file-tab-label{max-width:160px;overflow:hidden;text-overflow:ellipsis}.file-tab-close{font-size:.95rem;line-height:1;opacity:.6;padding:0 .15rem}.file-tab-close:hover{opacity:1}.file-tabs-empty{padding:.45rem .8rem;font-size:.75rem;color:var(--text-muted);font-style:italic}.file-tab.active{background:var(--bg-primary);color:var(--text-primary);border-bottom:2px solid var(--accent)}.file-tab:hover{background:var(--bg-tertiary)}.editor-container{flex:1;overflow:hidden;min-height:0}.editor-container .cm-editor{height:100%}.editor-container .cm-scroller{font-family:Courier New,Consolas,monospace;font-size:14px}.editor-readonly .cm-cursor{display:none!important}.panel-divider{height:4px;background:var(--border);cursor:row-resize;flex-shrink:0;transition:background .15s}.panel-divider:hover,.panel-divider:active{background:var(--accent)}.terminal-tabs{display:flex;gap:0;overflow-x:auto;flex-shrink:0;background:#ffffff0a;border-bottom:1px solid rgba(255,255,255,.08)}.terminal-tab{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .65rem;border:none;border-right:1px solid rgba(255,255,255,.08);background:transparent;color:var(--terminal-text);font-size:.72rem;cursor:pointer;white-space:nowrap}.terminal-tab.active{background:#ffffff14}.terminal-tab-type{text-transform:uppercase;font-weight:700;color:var(--success);font-size:.65rem}.terminal-tab-name{opacity:.85}.terminal-meta{display:flex;align-items:center;gap:.5rem;min-width:0;flex:1}.terminal-type-badge{text-transform:uppercase;font-size:.65rem;font-weight:700;color:var(--success);background:#3fb95026;padding:.15rem .4rem;border-radius:4px;flex-shrink:0}.terminal-cwd{font-family:monospace;font-size:.72rem;color:#7ee787;background:#7ee7871f;padding:.15rem .45rem;border-radius:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.terminal-cwd.muted{color:var(--text-muted);background:transparent}.terminal-panel{height:200px;flex-shrink:0;display:flex;flex-direction:column;background:var(--terminal-bg);min-height:120px}.terminal-panel.expanded{flex:1;height:auto}.terminal-header{padding:.4rem .8rem;font-size:.75rem;color:var(--text-muted);background:#ffffff0d;border-bottom:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;align-items:center;gap:.5rem}.terminal-output{flex:1;overflow-y:auto;padding:.75rem;font-family:Courier New,Consolas,monospace;font-size:13px;color:var(--terminal-text);white-space:pre-wrap;word-break:break-all;-webkit-user-select:text;user-select:text}.terminal-input-row{display:flex;border-top:1px solid rgba(255,255,255,.1)}.terminal-prompt{padding:.5rem 0 .5rem .75rem;font-family:monospace;color:var(--success);font-size:13px}.terminal-input{flex:1;background:transparent;border:none;color:var(--terminal-text);font-family:Courier New,Consolas,monospace;font-size:13px;padding:.5rem .75rem .5rem 0;outline:none}.terminal-input:disabled{opacity:.5}.notes-textarea{flex:1;resize:none;border:none;background:var(--bg-primary);color:var(--text-primary);padding:.75rem;font-size:.9rem;line-height:1.6;outline:none}.notes-textarea:disabled{opacity:.8}.notes-actions{padding:.5rem;border-top:1px solid var(--border)}.notes-actions .btn{width:100%;font-size:.8rem}.diff-view{padding:.75rem;overflow:auto;flex:1;font-family:monospace;font-size:13px}.diff-line{padding:.1rem .4rem;white-space:pre-wrap;word-break:break-all}.diff-line.added{background:var(--diff-add)}.diff-line.removed{background:var(--diff-remove)}.empty-state{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:.9rem;padding:2rem;text-align:center}.stream-ended-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100}.stream-ended-card{background:var(--bg-secondary);border-radius:12px;padding:2rem;text-align:center;max-width:400px}.stream-ended-card h2{margin-bottom:.5rem}.stream-ended-card p{color:var(--text-secondary);margin-bottom:1.5rem}@media(max-width:900px){.stream-body{flex-direction:column}.change-sidebar,.notes-sidebar{width:100%;max-height:180px;border-right:none;border-left:none;border-bottom:1px solid var(--border)}.notes-sidebar{order:3;max-height:150px}.center-panel{order:2;min-height:300px}.change-sidebar{order:1}.terminal-panel{height:150px}}@media(max-width:600px){.home-header h1{font-size:1.8rem}.stream-toolbar{padding:.4rem .6rem}.toolbar-actions .btn{padding:.35rem .6rem;font-size:.75rem}}.upload-label{display:inline-block;cursor:pointer}.upload-label input{display:none}.upload-label.btn{display:inline-flex;align-items:center}
