:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}#root,body,html{margin:0;width:100%;height:100%}body{font-family:Arial,sans-serif;display:block;background:linear-gradient(180deg,#f6f8ff,#f3f5ff);font-size:16px}.app-shell{position:relative;width:min(1400px,calc(100vw - 32px));margin:0 auto;height:100vh;display:flex;flex-direction:column;box-sizing:border-box}.app-header{position:relative;z-index:99999;flex:0 0 auto;padding:14px 20px;border-bottom:1px solid #d9ddff;background:#ffffffeb;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:space-between;align-items:center;gap:12px;font-weight:600}.app-header-actions{display:flex;gap:8px}.app-demo-button{border:1px solid #7dd3fc;background:#0284c7;color:#fff;border-radius:8px;padding:10px 14px;font-weight:600;font-size:14px}.app-locale-button{border:1px solid #c7d2fe;background:#0f172a;color:#fff;border-radius:999px;padding:10px 14px;font-weight:600;font-size:14px}.app-demo-catalog-button{border:1px solid #7dd3fc;background:#0369a1;color:#fff;border-radius:8px;padding:10px 14px;font-weight:600;font-size:14px}.app-conflict-demo-button{border:1px solid #fca5a5;background:#b91c1c;color:#fff;border-radius:8px;padding:10px 14px;font-weight:600;font-size:14px}.app-demo-button:disabled,.app-conflict-demo-button:disabled,.app-demo-catalog-button:disabled{opacity:.55;cursor:not-allowed}.app-reset-button{border:1px solid #c7d2fe;background:#1d4ed8;color:#fff;border-radius:8px;padding:10px 15px;font-weight:600;font-size:15px}.app-help-button{border:1px solid #94a3b8;background:#f1f5ff;color:#1e293b;border-radius:999px;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;padding:0;font-weight:800;font-size:18px;cursor:pointer}.app-header-title{font-size:21px;color:#20264d}.layout{display:flex;width:100%;flex:1 1 auto;min-height:0}.tutorial-backdrop{position:fixed;inset:0;background:#0f172a8c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;padding:24px;z-index:50}.tutorial-modal{width:min(760px,90vw);max-height:86vh;overflow:auto;background:#f8fafc;color:#1e293b;border:1px solid #bfdbfe;border-radius:12px;box-shadow:0 20px 45px #02061740;padding:20px;box-sizing:border-box}.tutorial-header{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px}.tutorial-header h2{margin:0;font-size:22px}.tutorial-close{border:1px solid #cbd5e1;background:#fff;color:#334155;width:30px;height:30px;border-radius:50%;font-size:17px;line-height:1;padding:0;margin:0;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;font-family:inherit;cursor:pointer;font-weight:700}.tutorial-body{display:grid;gap:10px}.demo-catalog-backdrop{position:fixed;inset:0;background:#0f172a8c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;padding:24px;z-index:50}.demo-catalog-modal{width:min(840px,92vw);max-height:86vh;overflow:auto;background:#f8fafc;color:#1e293b;border:1px solid #bfdbfe;border-radius:12px;box-shadow:0 20px 45px #02061740;padding:20px;box-sizing:border-box}.demo-catalog-header{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px}.demo-catalog-header h2{margin:0;font-size:22px}.demo-catalog-body{display:grid;gap:12px}.demo-catalog-note{margin:0;color:#334155;font-size:14px;line-height:1.5}.demo-catalog-list{display:grid;gap:10px}.demo-catalog-item{border:1px solid #dbeafe;border-radius:10px;padding:12px;background:#fff;display:flex;justify-content:space-between;align-items:center;gap:10px}.demo-catalog-content{display:grid;gap:6px;min-width:0;flex:1}.demo-catalog-content h3{margin:0;font-size:16px}.demo-catalog-content p{margin:0;color:#334155;font-size:14px}.demo-catalog-content pre{margin:0;font-size:12px;white-space:pre-wrap;color:#0f172a;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:8px;padding:8px 10px;max-height:130px;overflow:auto}.tutorial-list,.tutorial-section ul{margin:0;padding-left:20px}.tutorial-section h3{margin:4px 0;font-size:17px}.tutorial-section li{margin:5px 0}.tutorial-tip{margin:6px 0 0;color:#334155;opacity:.85}.panel{flex:1 1 50%;min-width:0;padding:14px;box-sizing:border-box;border:1px solid #dcdcdc}.graph-panel{overflow-y:auto;overflow-x:auto;min-height:calc(100vh - 100px)}.graph-canvas{width:100%;height:100%;max-width:none;margin:0;display:block;border:1px solid #e5e5e5;background:#fafafa;box-sizing:border-box}.graph-edge{stroke-dashoffset:0;transition:stroke .22s ease,stroke-width .22s ease,opacity .22s ease}.graph-edge-animate{animation:graph-draw-edge .52s ease-out both;stroke-dashoffset:-100}.graph-edge-enter{animation:graph-enter-edge .36s ease-out both;stroke-dashoffset:-100}.graph-node,.graph-node-wrap{animation:graph-pop-node .36s cubic-bezier(.2,.8,.2,1) both;transform-origin:center;transform-box:fill-box}.graph-node-circle{animation:graph-pop-sub .26s ease-out both}.graph-node-id{animation:graph-fade-up .22s ease-out both}.graph-node-message{animation:graph-fade-up .24s ease-out both}.graph-node-badge{animation:graph-fade-in .22s ease-out both}.graph-node-badge-text{animation:graph-fade-up .22s ease-out both}.graph-lane-line,.graph-empty-lane .graph-lane-line{animation:graph-fade-line .26s ease-out both;stroke-dasharray:6 8;stroke-dashoffset:14}.graph-lane-line{stroke:#cbd5e1}.graph-lane-text,.graph-empty-lane .graph-lane-text{animation:graph-fade-up .24s ease-out both;fill:#334155}.graph-branch-label{animation:graph-fade-up .25s ease-out both;transition:fill .18s ease;fill:#0f172a}.graph-legend{pointer-events:none}.graph-branch-pill-wrap{animation:graph-fade-up .24s ease-out both;transition:transform .18s ease}.graph-branch-pill{fill:#e2e8f0;stroke:#94a3b8;stroke-width:1}.graph-branch-connector{stroke:#94a3b8;strokewidth:1.5}.graph-head-badge-move{transform:translate(var(--head-x),var(--head-y));transition:transform .36s cubic-bezier(.2,.8,.2,1);transform-origin:top left;transform-box:fill-box}.graph-head-badge{animation:graph-head-pulse .32s ease-out both;transform-origin:center;transform-box:fill-box}.graph-head-text{animation:graph-fade-up .22s ease-out both}.graph-empty-msg,.graph-empty-guide,.graph-empty-guide-line{animation:graph-fade-up .24s ease-out both}.graph-empty-guide-line:nth-child(1){animation-delay:.12s}.graph-empty-guide-line:nth-child(2){animation-delay:.18s}.graph-canvas text{font-family:Arial,sans-serif}.graph-node,.graph-edge,.graph-branch-label,.graph-head-badge,.graph-head-text,.graph-lane-line,.graph-lane-text,.graph-empty-msg,.graph-empty-guide,.graph-empty-guide-line,.graph-empty-lane{transition:opacity .22s ease,transform .22s ease}@keyframes graph-draw-edge{0%{stroke-dashoffset:-100;opacity:0}to{stroke-dashoffset:0;opacity:1}}@keyframes graph-pop-node{0%{opacity:0;transform:scale(.4) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes graph-enter-edge{0%{opacity:0;stroke-dashoffset:-100}to{opacity:1;stroke-dashoffset:0}}@keyframes graph-pop-sub{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}@keyframes graph-fade-up{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes graph-fade-in{0%{opacity:0}to{opacity:1}}@keyframes graph-fade-line{0%{opacity:0;stroke-dashoffset:14}to{opacity:1;stroke-dashoffset:0}}@keyframes graph-head-pulse{0%{opacity:0;transform:scale(.94) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}.panel-content{padding-right:12px}.right-panel{display:flex;flex-direction:column;gap:12px}.sub-panel{flex:1;border:1px solid #e5e5e5;min-height:0;padding:11px;background:#fff}.editor-wrap{display:flex;flex-direction:column;gap:11px;height:100%}.editor-label{font-size:15px;color:#333}.editor-cm-wrapper{flex:1;min-height:0;border:1px solid #ddd;overflow:hidden}.editor-cm{width:100%;height:100%}.editor-cm .monaco-editor{width:100%!important;height:100%!important}.editor-cm .monaco-editor,.editor-cm .monaco-editor .mtk1{background:#fff;color:#111}.editor-cm .monaco-editor .view-line{font-family:monospace;font-size:16px;line-height:1.5}.editor-cm .monaco-editor .margin,.editor-cm .monaco-editor .margin-view-overlays{width:26px!important;max-width:26px!important;min-width:26px!important}.editor-cm .monaco-editor .margin-view-overlays .line-numbers{width:18px!important;text-align:right!important;padding-right:2px!important}.conflict-resolver{display:flex;flex-direction:column;gap:8px;height:100%}.conflict-toolbar{display:flex;gap:8px;flex-wrap:wrap}.conflict-btn{padding:6px 10px;border:1px solid #cbd5e1;border-radius:5px;background:#f8fafc;color:#0f172a;font-size:13px}.conflict-btn-active{background:#e0f2fe;border-color:#38bdf8}.conflict-btn:hover{background:#e2e8f0}.conflict-btn-ours{background:#dcfce7}.conflict-btn-theirs{background:#fee2e2}.conflict-btn-keep{background:#dbeafe}.conflict-panels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;flex:1;min-height:0}.conflict-pane{border:1px solid #e2e8f0;border-radius:6px;display:flex;flex-direction:column;min-height:0;overflow:hidden}.conflict-pane-header{font-size:12px;color:#334155;padding:6px 8px;border-bottom:1px solid #e2e8f0;background:#f8fafc}.conflict-pane .editor-cm{flex:1}.conflict-diff-wrap{min-height:180px;border:1px solid #e2e8f0;border-radius:6px;overflow:hidden}.terminal-panel{display:flex;flex-direction:column;gap:11px;height:100%}.terminal-history{flex:1;min-height:0;overflow-y:auto;border:1px solid #ddd;background:#111;color:#e8ffe8;padding:11px;box-sizing:border-box}.terminal-empty{color:#a5d6ff;font-size:14px;line-height:1.5;margin-bottom:11px}.terminal-empty-line{margin-bottom:5px}.terminal-inline-code{color:#88c0ff;font-weight:600}.terminal-entry+.terminal-entry{margin-top:11px}.terminal-command{color:#88c0ff;margin-bottom:6px;font-size:14px}.terminal-output{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.55}.terminal-error{margin:6px 0 0;padding:8px 10px;border-left:3px solid #ff5555;color:#ffb3b3;background:#ff000024;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}.terminal-input-wrap{display:flex;flex-direction:column;gap:9px}.terminal-input-row{display:flex;align-items:flex-start;gap:11px;background:#111;border:1px solid #ddd}.terminal-prompt,.terminal-input-prefix{color:#88c0ff;padding:11px 0 0 11px;font-weight:700;white-space:nowrap;font-family:monospace;font-size:18px}.terminal-input{width:100%;min-height:76px;resize:none;border:none;padding:11px 9px 9px 0;box-sizing:border-box;font-family:monospace;color:#e8ffe8;background:#111;font-size:15px;line-height:1.5}.terminal-input:focus{outline:none}.terminal{background:#111;color:#e8ffe8;padding:9px;box-sizing:border-box;overflow:auto}
