:root,[data-theme=light]{--bg-primary: #f8fafc;--bg-secondary: #f1f5f9;--bg-tertiary: #e2e8f0;--border: #cbd5e1;--border-subtle: #e2e8f0;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #64748b;--accent: #1e3a8a;--accent-hover: #1d4ed8;--gold: #3b82f6;--gold-strong: #0d9488;--gold-soft: rgba(59, 130, 246, .1);--highlight: #3b82f6;--innovation: #0d9488;--premium: #1e3a8a;--danger: #dc2626;--success: #0d9488;--success-bright: #14b8a6;--diff-add: #ecfdf5;--diff-remove: #fef2f2;--terminal-bg: #0f172a;--terminal-text: #e2e8f0;--sidebar-width: 260px;--notes-width: 280px;--radius-pane: 10px;--radius-sm: 6px;--pane-border: rgba(30, 58, 138, .14);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 4px 14px rgba(15, 23, 42, .08);--shadow-pane: 0 1px 3px rgba(15, 23, 42, .06), 0 4px 12px rgba(30, 58, 138, .06);--gradient-brand: linear-gradient(90deg, #1e3a8a, #3b82f6)}[data-theme=dark]{--bg-primary: #0b132b;--bg-secondary: #111d35;--bg-tertiary: #1a2847;--border: #2a3a5c;--border-subtle: #1f2f4a;--text-primary: #e8e8e8;--text-secondary: #c4b5a0;--text-muted: #8b9bb5;--accent: #d4af37;--accent-hover: #e8c547;--gold: #d4af37;--gold-strong: #f7e7ce;--gold-soft: rgba(212, 175, 55, .14);--highlight: #f7e7ce;--innovation: #1d4ed8;--premium: #d4af37;--danger: #f87171;--success: #d4af37;--success-bright: #f7e7ce;--diff-add: #0f2418;--diff-remove: #2a1215;--terminal-bg: #060b18;--terminal-text: #e8e8e8;--sidebar-width: 260px;--notes-width: 280px;--radius-pane: 10px;--radius-sm: 6px;--pane-border: rgba(212, 175, 55, .18);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .35);--shadow-md: 0 6px 20px rgba(0, 0, 0, .45);--shadow-pane: 0 1px 3px rgba(0, 0, 0, .4), 0 4px 16px rgba(11, 19, 43, .6);--gradient-brand: linear-gradient(90deg, #d4af37, #f7e7ce)}*{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:stretch;justify-content:center;padding:2rem}.home-layout{width:100%;max-width:1100px;margin:0 auto;display:flex;flex-direction:column;align-items:stretch;gap:2rem}@keyframes home-logo-enter{0%{opacity:0;transform:translateY(10px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes home-logo-float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes home-fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.theme-toggle-home{animation:home-fade-up .5s ease-out .9s both}.home-logo{width:56px;height:56px;flex-shrink:0;filter:drop-shadow(0 4px 12px rgba(30,58,138,.25));animation:home-logo-enter .65s cubic-bezier(.22,1,.36,1) both,home-logo-float 4.5s ease-in-out .65s infinite}[data-theme=dark] .home-logo{filter:drop-shadow(0 4px 14px rgba(212,175,55,.2))}.home-header{text-align:left;display:flex;flex-direction:column;align-items:flex-start}.home-brand{display:flex;align-items:center;gap:.85rem}.home-header h1{font-size:2.5rem;font-weight:700;margin:0;background:var(--gradient-brand);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:home-fade-up .6s ease-out .2s both}.home-header p{color:var(--text-secondary);font-size:1.1rem;margin:.85rem 0 0;max-width:22rem;animation:home-fade-up .6s ease-out .35s both}.home-card{background:var(--bg-secondary);border:1px solid var(--pane-border);border-top:3px solid var(--accent);border-radius:var(--radius-pane);padding:2rem;width:100%;max-width:420px;display:flex;flex-direction:column;gap:1rem;box-shadow:var(--shadow-pane);animation:home-fade-up .7s ease-out .5s both;align-self:stretch}.home-card h2{font-size:1.1rem;font-weight:600}@media(prefers-reduced-motion:reduce){.theme-toggle-home,.home-logo,.home-header h1,.home-header p,.home-card{animation:none;opacity:1;transform:none}}.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:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);font-size:1rem;transition:border-color .15s,box-shadow .15s}.form-group input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--gold-soft)}.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:var(--radius-sm);font-size:.95rem;font-weight:500;transition:background .15s,box-shadow .15s}.btn-primary{background:var(--accent);color:#fff}[data-theme=dark] .btn-primary{color:#0b132b}.btn-primary:hover{background:var(--accent-hover)}.btn-gold{background:var(--accent);color:#fff;font-weight:600}[data-theme=dark] .btn-gold{color:#0b132b}.btn-gold: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;z-index:10}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:none;border-radius:6px;background:transparent;color:var(--text-secondary);flex-shrink:0;transition:background .15s,color .15s}.icon-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.icon-btn.copied{color:var(--success-bright)}.icon-btn.theme-toggle{color:var(--accent)}.icon-btn.theme-toggle:hover{background:var(--gold-soft);color:var(--accent-hover)}.code-badge-row{display:inline-flex;align-items:center;gap:.25rem}.code-badge-row .icon-btn{color:var(--highlight)}.code-badge-row .icon-btn:hover{background:var(--gold-soft)}.stream-page{height:100vh;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-primary)}.stream-toolbar{display:flex;align-items:center;gap:.75rem;padding:.55rem 1rem;margin:.5rem .5rem 0;background:var(--bg-secondary);border:1px solid var(--pane-border);border-radius:var(--radius-pane);box-shadow:var(--shadow-sm);flex-shrink:0;flex-wrap:wrap}.stream-toolbar .code-badge{font-family:Courier New,monospace;font-size:1rem;font-weight:700;letter-spacing:.15em;padding:.25rem .6rem;background:var(--gold-soft);color:var(--accent);border:1px solid var(--pane-border);border-radius:var(--radius-sm)}.stream-toolbar .role-badge{font-size:.75rem;padding:.15rem .5rem;border-radius:999px;background:var(--accent);color:#fff;text-transform:uppercase;font-weight:600}[data-theme=dark] .stream-toolbar .role-badge{color:#0b132b}.stream-toolbar .role-badge.viewer{background:var(--text-muted);color:#fff}[data-theme=dark] .stream-toolbar .role-badge.viewer{color:#e8e8e8}.stream-toolbar .role-badge.editor{background:var(--gold-strong);color:#fff}[data-theme=dark] .stream-toolbar .role-badge.editor{background:var(--accent);color:#0b132b}.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;gap:.5rem;padding:.5rem;min-height:0}.pane{background:var(--bg-secondary);border:1px solid var(--pane-border);border-radius:var(--radius-pane);box-shadow:var(--shadow-pane);overflow:hidden;min-height:0}.stream-body.terminal-focus .change-sidebar,.stream-body.terminal-focus .editor-panel,.stream-body.terminal-focus .notes-sidebar{display:none}.stream-body.terminal-focus .center-panel{gap:0}.stream-body.terminal-focus .terminal-panel{flex:1}.stream-body.terminal-focus .panel-divider{display:none}.change-sidebar,.notes-sidebar{width:var(--sidebar-width);flex-shrink:0;display:flex;flex-direction:column}.notes-sidebar{width:var(--notes-width)}.panel-header{padding:.65rem .9rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);background:var(--bg-tertiary);border-bottom:1px solid var(--border-subtle);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-subtle)}.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:var(--radius-sm);cursor:pointer;margin-bottom:.25rem;border:1px solid transparent;font-size:.8rem;transition:border-color .15s,background .15s}.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;gap:.5rem}.editor-panel{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}.editor-panel.pane .file-tabs{background:var(--bg-tertiary);border-bottom:1px solid var(--border-subtle)}.editor-panel.pane .editor-container,.editor-panel.pane .diff-view,.editor-panel.pane .empty-state{background:var(--bg-primary)}.file-tabs{display:flex;gap:0;background:var(--bg-secondary);border-bottom:1px solid var(--border);overflow-x:auto;flex-shrink:0}.file-tab{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:.15rem;padding:0;min-height:2rem}.file-tab-select{padding:.45rem .35rem .45rem .8rem;border:none;background:transparent;color:inherit;font:inherit;display:inline-flex;align-items:center;cursor:pointer;min-width:0}.file-tab-copy{width:1.75rem;height:1.75rem;opacity:.55}.file-tab:hover .file-tab-copy,.file-tab.active .file-tab-copy{opacity:1}.file-tab-label{max-width:160px;overflow:hidden;text-overflow:ellipsis}.file-tab-close{font-size:.95rem;line-height:1;opacity:.6;padding:.45rem .5rem .45rem .15rem;border:none;background:transparent;color:inherit;cursor:pointer}.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:10px;flex-shrink:0;cursor:row-resize;display:flex;align-items:center;justify-content:center;position:relative}.panel-divider:before{content:"";width:2.5rem;height:3px;border-radius:999px;background:var(--border);transition:background .2s,width .2s}.panel-divider:hover:before,.panel-divider:active:before{background:var(--accent);width:3.5rem}.terminal-tabs{display:flex;gap:0;overflow-x:auto;flex-shrink:0;background:var(--bg-tertiary);border-bottom:1px solid var(--border-subtle)}.terminal-tab{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .65rem;border:none;border-right:1px solid var(--border-subtle);background:transparent;color:var(--terminal-text);font-size:.72rem;cursor:pointer;white-space:nowrap}.terminal-tab.active{background:#ffffff0f;border-bottom:2px solid var(--accent)}[data-theme=light] .terminal-tab.active{background:#ffffff14}.terminal-tab-type{text-transform:uppercase;font-weight:700;color:var(--accent);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(--accent);background:var(--gold-soft);padding:.15rem .4rem;border-radius:var(--radius-sm);flex-shrink:0}.terminal-cwd{font-family:monospace;font-size:.72rem;color:var(--gold-strong);background:var(--gold-soft);padding:.15rem .45rem;border-radius:var(--radius-sm);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.pane{border-color:var(--pane-border)}.terminal-panel.expanded{flex:1;height:auto}.terminal-header{padding:.4rem .8rem;font-size:.75rem;color:var(--text-muted);background:#ffffff08;border-bottom:1px solid var(--border-subtle);display:flex;justify-content:space-between;align-items:center;gap:.5rem}.terminal-output{flex:1;overflow-y:auto;padding:.5rem 0;font-family:Cascadia Code,Courier New,Consolas,monospace;font-size:13px;color:var(--terminal-text);-webkit-user-select:text;user-select:text}.terminal-line{display:flex;align-items:flex-start;gap:.25rem;padding:.1rem .75rem;position:relative}.terminal-line:hover{background:#ffffff0a}.terminal-line-text{flex:1;white-space:pre-wrap;word-break:break-all;min-width:0}.terminal-line.is-command .terminal-line-text{color:var(--gold-strong)}.terminal-line-copy{width:1.5rem;height:1.5rem;opacity:0;color:var(--terminal-text);flex-shrink:0;margin-top:.05rem}.terminal-line:hover .terminal-line-copy,.terminal-line-copy:focus-visible{opacity:1}.terminal-line-copy.copied{opacity:1;color:var(--success-bright)}.terminal-output-empty{padding:.75rem;color:var(--text-muted);font-style:italic}.terminal-input-row{display:flex;border-top:1px solid var(--border-subtle)}.terminal-prompt{padding:.5rem 0 .5rem .75rem;font-family:monospace;color:var(--accent);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-subtle);background:var(--bg-tertiary)}.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:1px solid var(--pane-border);border-radius:var(--radius-pane);padding:2rem;text-align:center;max-width:400px;box-shadow:var(--shadow-pane)}.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-radius:var(--radius-pane)}.notes-sidebar{order:3;max-height:150px}.center-panel{order:2;min-height:300px}.change-sidebar{order:1}.terminal-panel{height:150px}}@media(min-width:900px){.home{padding:3rem 4rem}.home-layout{flex-direction:row;align-items:center;justify-content:space-between;gap:3rem}.home-header{flex:1;min-width:0}.home-header p{max-width:26rem}.home-card{flex-shrink:0;align-self:center;margin-left:auto}}@media(max-width:600px){.home-brand{gap:.65rem}.home-logo{width:48px;height:48px}.home-header h1{font-size:1.8rem}.stream-toolbar{padding:.4rem .6rem}.toolbar-actions .btn{padding:.35rem .6rem;font-size:.75rem}.icon-btn{width:2.25rem;height:2.25rem}.file-tab-copy{width:2rem;height:2rem}.terminal-line-copy{opacity:.7;width:2rem;height:2rem}.code-badge-row .code-badge{font-size:.85rem;letter-spacing:.1em}}.upload-label{display:inline-block;cursor:pointer}.upload-label input{display:none}.upload-label.btn{display:inline-flex;align-items:center}
