:root{--bg-primary:#1e1e1e;--bg-secondary:#252526;--bg-tertiary:#2d2d2d;--text-primary:#d4d4d4;--text-secondary:#858585;--accent-primary:#4ec9b0;--accent-secondary:#007acc;--accent-orange:#ce9178;--border-color:#3c3c3c;--error-color:#f48771}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-primary);color:var(--text-primary);font-family:Consolas,Monaco,Courier New,monospace;line-height:1.5}.app{flex-direction:column;min-height:100vh;display:flex}.header{text-align:center;border-bottom:1px solid var(--border-color);padding:20px}.header h1{color:var(--accent-primary);margin-bottom:5px}.subtitle{color:var(--text-secondary);font-size:14px}.nav{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);justify-content:center;gap:10px;padding:15px;display:flex}.nav-btn{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);cursor:pointer;border-radius:4px;padding:10px 20px;font-family:inherit;font-size:14px;transition:all .2s}.nav-btn:hover{border-color:var(--accent-secondary);background:#3c3c3c}.nav-btn.active{background:var(--accent-secondary);border-color:var(--accent-secondary);color:#fff}.main{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:20px}.lambda-editor{flex-direction:column;gap:15px;display:flex}.toolbar{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;justify-content:space-between;padding:10px;display:flex}.toolbar-group{gap:8px;display:flex}.toolbar-btn{background:var(--accent-secondary);color:#fff;cursor:pointer;border:none;border-radius:3px;padding:8px 16px;font-family:inherit;font-size:13px;transition:background .2s}.toolbar-btn:hover:not(:disabled){background:#0098ff}.toolbar-btn:disabled{background:var(--bg-tertiary);color:var(--text-secondary);cursor:not-allowed}.toolbar-btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.toolbar-btn-secondary:hover:not(:disabled){background:#3c3c3c}.examples-bar{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;flex-wrap:wrap;align-items:center;gap:8px;padding:12px;display:flex}.examples-label{color:var(--text-secondary);margin-right:5px;font-size:13px}.example-btn{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);cursor:pointer;border-radius:3px;padding:6px 12px;font-family:inherit;font-size:12px;transition:all .2s}.example-btn:hover{border-color:var(--accent-primary);background:#3c3c3c}.editor-container{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;padding:15px}.editor-textarea{background:var(--bg-primary);width:100%;min-height:200px;color:var(--text-primary);border:1px solid var(--border-color);resize:vertical;border-radius:3px;padding:12px;font-family:inherit;font-size:16px;line-height:1.5}.editor-textarea:focus{border-color:var(--accent-secondary);outline:none}.editor-textarea::placeholder{color:var(--text-secondary)}.status-bar{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;gap:20px;padding:10px 15px;font-size:12px;display:flex}.status-item{align-items:center;gap:5px;display:flex}.status-label{color:var(--text-secondary)}.status-value{color:var(--accent-primary)}.status-agent{background:var(--bg-tertiary);border-radius:3px;padding:2px 6px;font-family:monospace}.status-syncing{color:var(--accent-secondary)}.sync-indicator{background:var(--accent-secondary);border-radius:50%;width:8px;height:8px;margin-right:5px;animation:1s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.parse-result{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;padding:15px}.parse-result h3{color:var(--accent-primary);margin-bottom:10px;font-size:14px}.ast-output{background:var(--bg-primary);white-space:pre-wrap;border-radius:3px;padding:12px;font-size:13px;overflow-x:auto}.error-list{list-style:none}.error-item{color:var(--error-color);border-left:3px solid var(--error-color);background:#f487711a;border-radius:0 3px 3px 0;margin-bottom:5px;padding:8px}.collaborative-demo{flex-direction:column;gap:20px;display:flex}.demo-header{text-align:center}.demo-header h2{color:var(--accent-primary);margin-bottom:10px}.demo-description{color:var(--text-secondary);max-width:600px;margin:0 auto 15px;font-size:14px}.demo-controls{justify-content:center;gap:10px;display:flex}.demo-btn{background:var(--accent-secondary);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:10px 20px;font-family:inherit;font-size:14px;transition:background .2s}.demo-btn:hover{background:#0098ff}.demo-btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.demo-btn-secondary:hover{background:#3c3c3c}.editors-container{grid-template-columns:1fr 1fr;gap:20px;display:grid}.editor-panel{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:4px;overflow:hidden}.panel-header{color:var(--bg-primary);justify-content:space-between;padding:10px 15px;font-weight:700;display:flex}.panel-title{font-size:14px}.panel-cursor{opacity:.8;font-size:12px}.panel-textarea{background:var(--bg-primary);width:100%;min-height:150px;color:var(--text-primary);resize:vertical;border:none;padding:12px;font-family:inherit;font-size:14px;line-height:1.5}.panel-textarea:focus{outline:none}.panel-status{background:var(--bg-tertiary);color:var(--text-secondary);padding:8px 15px;font-size:12px}.operations-log{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;padding:15px}.operations-log h3{color:var(--accent-primary);margin-bottom:10px;font-size:14px}.log-container{background:var(--bg-primary);border-radius:3px;max-height:200px;padding:10px;overflow-y:auto}.log-empty{color:var(--text-secondary);text-align:center;font-size:13px}.log-list{list-style:none}.log-item{border-bottom:1px solid var(--border-color);gap:10px;padding:5px 0;font-size:12px;display:flex}.log-item:last-child{border-bottom:none}.log-agent{color:var(--accent-primary);min-width:50px;font-weight:700}.log-type{color:var(--accent-secondary);min-width:50px}.log-content{color:var(--accent-orange)}.log-pos{color:var(--text-secondary);margin-left:auto}.footer{text-align:center;border-top:1px solid var(--border-color);background:var(--bg-secondary);padding:15px;font-size:13px}.footer a{color:var(--accent-secondary);text-decoration:none}.footer a:hover{text-decoration:underline}.demo-info{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;margin-top:20px;padding:15px}.demo-info h3{color:var(--accent-primary);margin-bottom:10px;font-size:14px}.demo-info p{color:var(--text-secondary);margin-bottom:10px;font-size:13px}.demo-info code{background:var(--bg-tertiary);color:var(--accent-orange);border-radius:3px;padding:2px 6px}.code-block{background:var(--bg-primary);color:var(--text-primary);border-radius:4px;padding:15px;font-size:12px;line-height:1.6;overflow-x:auto}.panel-undo-btn{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);cursor:pointer;border-radius:3px;margin-left:5px;padding:4px 8px;font-family:inherit;font-size:11px}.panel-undo-btn:hover:not(:disabled){background:#3c3c3c}.panel-undo-btn:disabled{opacity:.4;cursor:not-allowed}.panel-undo-controls{gap:5px;margin-left:auto;display:flex}.shared-doc-info{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;align-items:center;gap:10px;margin-bottom:15px;padding:10px 15px;display:flex;overflow:hidden}.shared-label{color:var(--text-secondary);white-space:nowrap;font-size:12px}.shared-text{color:var(--accent-primary);background:var(--bg-primary);text-overflow:ellipsis;white-space:nowrap;border-radius:3px;flex:1;padding:4px 8px;font-size:12px;overflow:hidden}.demo-steps{margin:15px 0;padding-left:20px}.demo-steps li{color:var(--text-primary);margin-bottom:8px;font-size:13px;line-height:1.5}.demo-note{color:var(--text-secondary);background:var(--bg-tertiary);border-radius:4px;margin-top:15px;padding:10px;font-size:12px;font-style:italic}.log-undo .log-type,.log-redo .log-type{color:var(--accent-orange);font-weight:700}.sync-mode-toggle{background:var(--bg-tertiary);border-radius:4px;margin:15px 0;padding:10px 15px;font-size:13px}.sync-mode-toggle label{cursor:pointer;align-items:center;gap:8px;display:flex}.sync-mode-toggle input[type=checkbox]{cursor:pointer;width:16px;height:16px}.ws-status{font-size:11px;font-weight:700}.ws-status.connected{color:#4ec9b0}.ws-status.disconnected{color:var(--error-color)}@media (width<=768px){.editors-container{grid-template-columns:1fr}.status-bar{flex-wrap:wrap;gap:10px}.nav{flex-direction:column}.nav-btn{width:100%}}
