:root{--bg-0:#0a0a0f;--bg-1:#12121a;--bg-2:#1c1c28;--bg-3:#24243a;--fg:#e8e8ef;--muted:#6e6e82;--line:#ffffff0f;--line-strong:#ffffff1f;--accent:#22c55e;--accent-soft:#22c55e1f;--info:#38bdf8;--info-soft:#38bdf81f;--danger:#ff4d4f;--danger-soft:#ff4d4f1f;--warning:#faad14;--warning-soft:#faad141f;--success:#22c55e;--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg-0);color:var(--fg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow:hidden}button{font-family:inherit}.ide-root{flex-direction:column;height:100vh;display:flex}.ide-header{background:var(--bg-1);border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;height:48px;padding:0 16px;display:flex}.ide-header-left{align-items:center;gap:12px;display:flex}.ide-header-right{align-items:center;gap:8px;display:flex}.ide-brand{color:var(--accent);letter-spacing:-.3px;font-size:15px;font-weight:800}.ide-body{flex:1;min-height:0;display:flex;overflow:hidden}.ide-content{flex-direction:column;flex:1;min-width:0;display:flex;position:relative;overflow:hidden}.ide-content-top{flex:1;min-height:0;display:flex;overflow:hidden}.resizer-v{cursor:col-resize;z-index:10;background:0 0;flex-shrink:0;width:4px;transition:background .12s;position:absolute;top:0;bottom:0;left:-2px}.resizer-v:after{content:"";position:absolute;inset:0}.resizer-v:hover,.resizer-v:active{background:var(--accent-soft)}.resizer-h{cursor:row-resize;background:0 0;flex-shrink:0;height:4px;transition:background .12s;position:relative}.resizer-h:after{content:"";border-top:1px solid var(--line);position:absolute;inset:0}.resizer-h:hover,.resizer-h:active{background:var(--accent-soft)}.ide-sidebar{background:var(--bg-1);border-right:1px solid var(--line);flex-direction:column;flex-shrink:0;min-width:180px;max-width:600px;display:flex;overflow:hidden}.sidebar-scroll{flex-direction:column;flex:1;display:flex;overflow-y:auto}.sidebar-section{border-bottom:1px solid var(--line);flex-shrink:0}.sidebar-section-grow{flex-direction:column;flex:auto;min-height:120px;display:flex}.sidebar-section-grow .sidebar-content{flex:1;overflow-y:auto}.sidebar-header{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);justify-content:space-between;align-items:center;padding:10px 14px;font-size:11px;font-weight:700;display:flex}.sidebar-content{padding:0 8px 8px}.sidebar-empty{color:var(--muted);padding:8px 4px;font-size:12px}.sidebar-hint{color:var(--warning);padding:2px 4px;font-size:11px}.file-item{cursor:pointer;color:var(--fg);border-radius:6px;justify-content:space-between;align-items:center;gap:6px;padding:6px 10px;font-size:13px;transition:background .12s;display:flex;position:relative}.file-item:before,.file-item:after{content:"";background:0 0;border-radius:2px;height:2px;position:absolute;left:8px;right:8px}.file-item:before{top:-1px}.file-item:after{bottom:-1px}.file-item:hover{background:var(--bg-2)}.file-item.active{background:var(--accent-soft);color:var(--accent)}.file-item.dragging{opacity:.45}.file-item.drop-before:before,.file-item.drop-after:after{background:var(--accent)}.file-drag-handle{color:var(--muted);opacity:.35;flex-shrink:0;align-items:center;display:inline-flex}.file-item:hover .file-drag-handle,.file-item.dragging .file-drag-handle{opacity:.8}.file-item-name{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.file-origin-icon{flex-shrink:0}.file-item-chain .file-origin-icon,.editor-tab-chain>svg{color:var(--info)}.file-item-draft .file-origin-icon,.editor-tab-draft>svg{color:var(--accent)}.file-item-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-rename-input{border:1px solid var(--accent);background:var(--bg-0);width:100%;min-width:0;height:22px;color:var(--fg);font-family:var(--font-mono);border-radius:4px;outline:none;padding:0 6px;font-size:12px}.file-item-close{opacity:0;cursor:pointer;color:var(--muted);flex-shrink:0;align-items:center;transition:opacity .12s,color .12s;display:inline-flex}.file-item:hover .file-item-close{opacity:1}.file-item-close:hover{color:var(--fg)}.sidebar-action{justify-content:space-between;width:100%}.ide-btn-label{align-items:center;gap:6px;display:inline-flex}.kbd{font-family:var(--font-mono);color:var(--muted);border:1px solid var(--line);letter-spacing:.5px;background:#ffffff0f;border-radius:4px;flex-shrink:0;padding:1px 6px;font-size:10px}.ide-main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.editor-tabs{background:var(--bg-1);border-bottom:1px solid var(--line);flex-shrink:0;align-items:center;gap:2px;height:36px;padding:0 8px;display:flex;overflow-x:auto}.editor-tab{cursor:pointer;color:var(--muted);white-space:nowrap;border-radius:6px 6px 0 0;align-items:center;gap:6px;padding:6px 12px;font-size:12px;transition:background .12s,color .12s;display:flex}.editor-tab:hover{background:var(--bg-2);color:var(--fg)}.editor-tab.active{background:var(--bg-0);color:var(--fg)}.editor-tab-close{cursor:pointer;opacity:.5;align-items:center;margin-left:2px;transition:opacity .12s;display:inline-flex}.editor-tab-close:hover{opacity:1}.dirty-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block}.editor-area{flex:1;overflow:hidden}.monaco-editor .xian-diagnostic-glyph{justify-content:center;align-items:center;display:flex!important}.monaco-editor .xian-diagnostic-glyph:before{content:"!";color:#fff;text-align:center;border-radius:50%;width:13px;height:13px;font-size:10px;font-weight:800;line-height:13px}.monaco-editor .xian-diagnostic-glyph-error:before{background:var(--danger)}.monaco-editor .xian-diagnostic-glyph-warning:before{background:var(--warning);color:#000}.ide-bottom{background:var(--bg-1);flex-direction:column;flex-shrink:0;min-height:80px;max-height:80vh;display:flex}.bottom-tabs{border-bottom:1px solid var(--line);flex-shrink:0;align-items:center;gap:2px;height:32px;padding:0 8px;display:flex}.bottom-tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:6px;padding:5px 12px;font-size:12px;font-weight:600;transition:color .12s,background .12s;display:inline-flex}.bottom-tab:hover{color:var(--fg);background:var(--bg-2)}.bottom-tab.active{color:var(--accent)}.tab-badge{background:var(--bg-2);min-width:18px;height:16px;color:var(--muted);border-radius:8px;justify-content:center;align-items:center;padding:0 5px;font-size:10px;font-weight:700;display:inline-flex}.bottom-tab.active .tab-badge{background:var(--accent-soft);color:var(--accent)}.bottom-content{font-family:var(--font-mono);flex:1;padding:8px 14px;font-size:12px;line-height:1.6;overflow-y:auto}.bottom-empty{color:var(--muted);text-align:center;padding:16px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px}.console-entry{align-items:flex-start;gap:8px;padding:2px 0;display:flex;position:relative}.console-entry:hover{background:#ffffff05}.console-time{color:var(--muted);flex-shrink:0;padding-top:1px;font-size:11px}.console-msg{color:var(--fg);white-space:pre-wrap;word-break:break-all;flex:1;min-width:0}.console-msg.info{color:var(--muted)}.console-msg.success{color:var(--success)}.console-msg.error{color:var(--danger)}.console-msg.result{color:var(--accent)}.console-copy{opacity:0;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;transition:opacity .12s,color .12s,background .12s}.console-entry:hover .console-copy{opacity:1}.console-copy:hover{background:var(--bg-2);color:var(--fg)}.interact-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin-bottom:12px;padding:4px 6px 12px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex}.interact-contract{color:var(--accent);font-weight:700;font-family:var(--font-mono);margin-right:8px;font-size:13px}.interact-counts{color:var(--muted);font-size:11px}.interact-warn{color:var(--warning);background:var(--warning-soft);border-radius:4px;padding:3px 8px;font-size:11px}.method-card{background:var(--bg-0);border:1px solid var(--line);border-radius:8px;margin-bottom:8px;padding:10px 12px}.method-name{color:var(--accent);font-size:13px;font-weight:600;font-family:var(--font-mono);margin-bottom:8px}.method-args{grid-template-columns:minmax(100px,max-content) minmax(0,1fr);align-items:center;gap:4px 6px;margin-bottom:8px;display:grid}.method-arg-row{display:contents}.method-arg-label{color:var(--fg);min-width:100px;font-size:11px;font-family:var(--font-mono);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.method-arg-type{color:var(--muted)}.method-arg-input{border:1px solid var(--line);background:var(--bg-2);width:100%;color:var(--fg);font-size:12px;font-family:var(--font-mono);box-sizing:border-box;border-radius:4px;outline:none;min-width:0;padding:4px 8px}.method-arg-input:focus{border-color:var(--accent)}.method-actions{justify-content:flex-end;gap:6px;display:flex}.ide-input{border:1px solid var(--line);background:var(--bg-0);width:100%;color:var(--fg);border-radius:6px;outline:none;padding:8px 10px;font-family:inherit;font-size:13px}.ide-input:focus{border-color:var(--accent)}.ide-input[readonly]{color:var(--muted);background:var(--bg-1)}.ide-input-mono{font-family:var(--font-mono);font-size:12px}.ide-btn{cursor:pointer;white-space:nowrap;border:none;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:600;transition:background .12s,opacity .12s,color .12s;display:inline-flex}.ide-btn:disabled{opacity:.4;cursor:not-allowed}.ide-btn-primary{background:var(--accent);color:#000}.ide-btn-primary:hover:not(:disabled){background:#1aab52}.ide-btn-secondary{background:var(--bg-2);color:var(--fg)}.ide-btn-secondary:hover:not(:disabled){background:var(--bg-3)}.ide-btn-ghost{color:var(--muted);background:0 0}.ide-btn-ghost:hover:not(:disabled){background:var(--bg-2);color:var(--fg)}.ide-btn-danger{background:var(--danger-soft);color:var(--danger)}.ide-btn-danger:hover:not(:disabled){background:#ff4d4f33}.ide-btn-sm{padding:4px 10px;font-size:12px}.ide-btn-icon{min-width:28px;min-height:28px;padding:6px}.btn-row{gap:6px;display:flex}.field-group{flex-direction:column;gap:6px;display:flex}.field-label{color:var(--muted);text-transform:uppercase;letter-spacing:.3px;font-size:11px;font-weight:600}.status-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.status-dot.online{background:var(--success)}.status-dot.offline{background:var(--danger)}.status-badge{background:var(--bg-2);color:var(--muted);border:none;border-radius:12px;align-items:center;gap:6px;padding:4px 10px;font-family:inherit;font-size:12px;font-weight:500;display:inline-flex}.status-badge-button{cursor:pointer;transition:background .12s,color .12s}.status-badge-button:hover{background:var(--bg-3);color:var(--fg)}.status-badge-label{white-space:nowrap}.ide-statusbar{background:var(--bg-1);border-top:1px solid var(--line);height:22px;color:var(--fg);flex-shrink:0;justify-content:space-between;align-items:center;padding:0 12px;font-size:11px;display:flex}.ide-statusbar .status-left,.ide-statusbar .status-right{align-items:center;gap:8px;display:flex}.ide-statusbar .muted{color:var(--muted);align-items:center;gap:4px;display:inline-flex}.ide-statusbar .status-sep{color:var(--line-strong)}.ide-statusbar .status-busy{color:var(--accent)}.ide-statusbar .status-errors{color:var(--danger);align-items:center;gap:4px;font-weight:600;display:inline-flex}.ide-modal-backdrop{z-index:200;background:#0000008c;justify-content:center;align-items:flex-start;padding-top:80px;animation:.12s fade-in;display:flex;position:fixed;inset:0}.ide-modal{background:var(--bg-1);border:1px solid var(--line-strong);border-radius:10px;width:min(440px,100% - 32px);animation:.16s modal-in;box-shadow:0 20px 50px #0009}.ide-modal-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.ide-modal-title{color:var(--fg);font-size:13px;font-weight:700}.ide-modal-body{flex-direction:column;gap:14px;padding:16px;display:flex}.template-grid-modal{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#fff3}.ide-toast-stack{z-index:220;pointer-events:none;flex-direction:column;gap:6px;display:flex;position:fixed;bottom:36px;right:24px}.ide-toast{color:#fff;border:1px solid var(--line-strong);background:#1c1c28f2;border-radius:8px;padding:10px 16px;font-size:13px;font-weight:500;animation:.2s toast-in;box-shadow:0 8px 24px #00000080}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.empty-state{height:100%;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex}.empty-state h2{color:var(--fg);font-size:18px;font-weight:600}.empty-state p{text-align:center;max-width:400px;font-size:13px;line-height:1.6}.template-grid{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px;display:flex}.template-card{background:var(--bg-2);border:1px solid var(--line);cursor:pointer;color:var(--fg);border-radius:8px;outline:none;align-items:center;gap:8px;padding:12px 16px;font-size:13px;font-weight:600;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.template-card:hover,.template-card:focus-visible{background:var(--bg-3);border-color:var(--accent);color:var(--accent)}
