:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f6f8;--panel:#fff;--panel-solid:#fff;--ink:#111827;--muted:#667085;--muted-2:#98a2b3;--line:#11182717;--line-strong:#1118272e;--accent:#111827;--accent-2:#0f766e;--danger:#c2410c;--danger-bg:#fff2ed;--shadow:0 20px 54px #0f172a14;--soft-shadow:0 10px 26px #0f172a0f;--radius-lg:28px;--radius-md:18px;--radius-sm:12px;--left:320px;--right:390px;font-family:Avenir Next,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box;-ms-overflow-style:none;scrollbar-width:none}::-webkit-scrollbar{width:0;height:0;display:none}body{min-height:100vh;color:var(--ink);background:var(--bg);margin:0;overflow:hidden}button,input,select,textarea{font:inherit}button{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:14px;padding:10px 12px;transition:transform .16s,border-color .16s,background .16s,color .16s,box-shadow .16s}button:hover{border-color:var(--line-strong);transform:translateY(-1px);box-shadow:0 10px 24px #0f172a14}button:active{transform:translateY(0)}button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}input,select,textarea{appearance:none;border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:14px;outline:none;padding:11px 12px;transition:border-color .16s,box-shadow .16s,background .16s}input:focus,select:focus,textarea:focus{background:#fff;border-color:#0f766e8c;box-shadow:0 0 0 4px #0f766e1a}textarea{resize:none;min-height:104px}input[type=checkbox],input[type=radio]{appearance:none;cursor:pointer;flex:none;padding:0}input[type=checkbox]{background:#eef2f6;border-color:#11182724;border-radius:999px;width:42px;min-width:42px;height:24px;position:relative;box-shadow:inset 0 1px 3px #0f172a1f}input[type=checkbox]:before{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .18s,box-shadow .18s;position:absolute;top:50%;left:3px;transform:translateY(-50%);box-shadow:0 4px 10px #0f172a33}input[type=checkbox]:checked{background:#111827;border-color:#0f766ebd}input[type=checkbox]:checked:before{transform:translate(18px,-50%);box-shadow:0 5px 14px #0f172a47}input[type=radio]{background:#fff;border-color:#11182738;border-radius:50%;width:18px;min-width:18px;height:18px}input[type=radio]:before{background:var(--accent-2);content:"";opacity:0;border-radius:50%;width:8px;height:8px;margin:4px;transition:opacity .16s,transform .16s;display:block;transform:scale(.45)}input[type=radio]:checked{border-color:var(--accent-2);box-shadow:0 0 0 4px #0f766e1a}input[type=radio]:checked:before{opacity:1;transform:scale(1)}input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{border-color:#0f766eb3;box-shadow:0 0 0 4px #0f766e1f,inset 0 1px 3px #0f172a1a}input[type=checkbox]:disabled,input[type=radio]:disabled{opacity:.45;cursor:not-allowed}.app-shell{grid-template-columns:var(--left) minmax(520px, 1fr) var(--right);gap:18px;width:100vw;height:100vh;padding:18px;display:grid}.left-panel,.right-panel{flex-direction:column;gap:14px;min-width:0;min-height:0;padding:2px;display:flex;position:relative;overflow:hidden}.left-panel{animation:.76s cubic-bezier(.22,1,.36,1) both leftColumnIn}.right-panel{animation:.76s cubic-bezier(.22,1,.36,1) both rightColumnIn}.custom-scroll-area{flex:1;min-width:0;min-height:0;position:relative;overflow:hidden}.custom-scroll-content{overscroll-behavior:contain;scroll-behavior:smooth;width:100%;min-width:0;height:100%;min-height:0;overflow:auto}.panel-scroll-area{width:100%;height:100%}.panel-scroll-area>.custom-scrollbar-track{display:none}.panel-scroll-content{flex-direction:column;gap:14px;padding:0;display:flex}.custom-scrollbar-track{z-index:6;opacity:0;background:#94a3b81a;border-radius:999px;width:8px;transition:opacity .16s,background .16s;position:absolute;top:4px;bottom:4px;right:1px}.custom-scroll-area:hover>.custom-scrollbar-track,.custom-scroll-area:focus-within>.custom-scrollbar-track,.custom-scrollbar-track:active{opacity:1}.custom-scrollbar-thumb{cursor:grab;touch-action:none;background:#94a3b894;border:2px solid #ffffffe0;border-radius:999px;width:100%;min-height:32px;box-shadow:0 8px 18px #0f172a29}.custom-scrollbar-thumb:hover{background:#94a3b8b8}.custom-scrollbar-thumb:active{cursor:grabbing;background:#64748b8c}.custom-select{width:100%;position:relative}.custom-select-trigger{text-align:left;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:43px;padding:10px 12px;display:flex}.custom-select-trigger span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.custom-select-trigger i{color:var(--muted-2);font-size:11px;transition:transform .16s}.custom-select.open .custom-select-trigger i{transform:rotate(180deg)}.custom-select-menu{z-index:30;background:#fff;border:1px solid #1118271a;border-radius:18px;gap:4px;width:100%;min-width:160px;padding:6px;animation:.14s both contextMenuIn;display:grid;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 24px 56px #0f172a29}.custom-select-option{width:100%;box-shadow:none;text-align:left;background:0 0;border:0;border-radius:13px;grid-template-columns:minmax(0,1fr) 16px;align-items:center;gap:8px;padding:9px 10px;display:grid}.custom-select-option:hover,.custom-select-option.active{box-shadow:none;background:#1118270f;transform:none}.custom-select-option i{color:var(--accent-2);font-size:12px}.custom-slider{cursor:pointer;touch-action:none;outline:none;align-items:center;min-height:43px;display:flex}.custom-slider-track{background:#e5e7eb;border-radius:999px;width:100%;height:8px;position:relative}.custom-slider-fill{background:#111827;border-radius:999px;position:absolute;inset:0 auto 0 0}.custom-slider-thumb{background:#111827;border:4px solid #fff;border-radius:999px;width:20px;height:20px;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 8px 18px #0f172a2e}.custom-slider:focus-visible .custom-slider-thumb{box-shadow:0 0 0 4px #0f766e1f,0 8px 18px #0f172a2e}.custom-color-picker{grid-template-columns:36px minmax(0,1fr);gap:7px;display:grid;position:relative}.custom-color-swatch{border:3px solid #fff;border-radius:13px;width:36px;height:38px;padding:0;box-shadow:inset 0 0 0 1px #11182729,0 10px 22px #0f172a14}.custom-color-grid{z-index:32;background:#fff;border:1px solid #1118271a;border-radius:18px;grid-template-columns:repeat(5,26px);gap:7px;padding:10px;animation:.14s both contextMenuIn;display:grid;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 24px 56px #0f172a29}.custom-color-chip{border:3px solid #fff;border-radius:10px;width:26px;height:26px;padding:0;box-shadow:inset 0 0 0 1px #1118272e}.modal-title h2,.empty-state h2{letter-spacing:-.04em;margin:0}.eyebrow{color:var(--muted-2);letter-spacing:.14em;text-transform:uppercase;margin:0 0 3px;font-size:11px;font-weight:800}.panel-card{background:var(--panel);border-radius:var(--radius-lg);box-shadow:var(--soft-shadow);border:1px solid #11182712;padding:15px}.panel-card.compact{padding:14px}.panel-title{justify-content:space-between;align-items:center;gap:12px;margin-bottom:13px;font-size:13px;font-weight:800;display:flex}.panel-title span:first-child{align-items:center;gap:8px;display:flex}.save-state,.muted-count{color:var(--muted-2);font-size:11px;font-weight:700}.save-state.dirty{color:#b45309}.save-state.saved{color:#047857}.action-grid{grid-template-columns:1fr 1fr;gap:9px;display:grid}.action-grid.dense button{padding:9px 8px;font-size:13px}.primary-action,.tool-btn.active{color:#fff;background:#111827;border-color:#111827}.danger-soft{color:var(--danger);background:var(--danger-bg)}.field-label{color:var(--muted);margin:13px 0 7px;font-size:12px;font-weight:800;display:block}.search-box{position:relative}.search-box i{color:var(--muted-2);position:absolute;top:50%;left:13px;transform:translateY(-50%)}.search-box input{padding-left:37px}.toggle-row{color:var(--muted);justify-content:space-between;align-items:center;gap:10px;margin-top:12px;font-size:12px;font-weight:700;display:flex}.toggle-row.stack{flex-direction:column;align-items:flex-start}.toggle-row label{align-items:center;gap:6px;display:flex}.filter-switches{grid-template-columns:1fr;gap:9px;display:grid}.toggle-row .toggle-card{background:#fff;border:1px solid #11182714;border-radius:16px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin:0;padding:10px 11px;display:grid}.toggle-copy{min-width:0}.toggle-copy strong,.toggle-copy small{display:block}.toggle-copy strong{color:var(--ink);font-size:12px;font-weight:900}.toggle-copy small{color:var(--muted-2);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:11px;font-weight:750;overflow:hidden}.grow-list{flex-direction:column;flex:1.8 430px;min-height:430px;display:flex}.people-list,.snapshot-list{flex:1;min-height:0}.people-list-content,.snapshot-list-content{flex-direction:column;gap:8px;min-height:100%;padding-right:12px;display:flex}.person-row,.snapshot-row{cursor:pointer;background:#ffffff8a;border:1px solid #0000;border-radius:16px;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;min-height:52px;padding:9px;transition:background .16s,border-color .16s,transform .16s,box-shadow .16s;display:grid}.person-row:hover,.snapshot-row:hover,.person-row.active{border-color:var(--line);background:#f9fafb;transform:translate(2px)}.person-row.active{border-color:#111827;box-shadow:inset 0 0 0 1.5px #111827}.person-row.hidden-by-filter{display:none}.mini-avatar{color:#fff;border-radius:13px;place-items:center;width:34px;height:34px;font-size:13px;font-weight:900;display:grid;overflow:hidden}.mini-avatar img{object-fit:cover;width:100%;height:100%}.person-row strong,.snapshot-row strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;display:block;overflow:hidden}.person-row small,.snapshot-row small{color:var(--muted-2);text-overflow:ellipsis;white-space:nowrap;font-size:11px;display:block;overflow:hidden}.workspace{grid-template-rows:minmax(62px,auto) 1fr;gap:14px;min-width:0;min-height:0;display:grid}.topbar{border-radius:var(--radius-lg);min-width:0;box-shadow:var(--soft-shadow);background:#fff;border:1px solid #11182712;grid-template-columns:minmax(0,1fr) max-content minmax(0,1fr);justify-content:stretch;align-items:center;gap:10px;padding:10px;animation:.7s cubic-bezier(.22,1,.36,1) both toolbarIn;display:grid}.toolbar-group{align-items:center;gap:8px;min-width:0;display:flex}.toolbar-group:first-child{justify-content:flex-start}.toolbar-group:last-child{justify-content:flex-end}.toolbar-group button{white-space:nowrap;flex:none;padding:10px 12px}.center-tools{justify-content:center;min-width:150px}.zoom-label{min-width:56px;color:var(--muted);text-align:center;font-size:12px;font-weight:900}.canvas-shell{min-width:0;min-height:0;box-shadow:var(--shadow);isolation:isolate;background:#fff;border:1px solid #11182714;border-radius:34px;animation:.82s cubic-bezier(.22,1,.36,1) both canvasIn;position:relative;overflow:hidden}.canvas-bg{background-color:#fff;background-image:linear-gradient(#0f172a0e 1px,#0000 1px),linear-gradient(90deg,#0f172a0e 1px,#0000 1px);background-position:0 0;background-size:16px 16px;position:absolute;inset:0}.graph-svg{cursor:crosshair;touch-action:none;width:100%;height:100%;position:absolute;inset:0}.graph-svg.panning{cursor:grabbing}.edge-path{fill:none;stroke:#64748b;stroke-linecap:round;cursor:pointer;transition:stroke .14s,opacity .14s,stroke-width .14s}.edge-hit{fill:none;stroke:#0000;stroke-width:18px;cursor:pointer}.edge-group.selected .edge-path{stroke:#111827}.edge-group.dimmed,.node-group.dimmed{opacity:.18}.edge-label{pointer-events:none;fill:#475569;paint-order:stroke;stroke:#ffffffdb;stroke-linecap:round;stroke-linejoin:round;stroke-width:5px;text-anchor:middle;font-size:12px;font-weight:800}.node-group{cursor:grab;transition:opacity .14s}.node-group:active{cursor:grabbing}.node-card{fill:#fff;filter:none}.node-group.selected .node-card{stroke:#111827}.node-group.connect-source .node-card{stroke:#0f766e;stroke-width:3px}.node-initial{fill:#fff;text-anchor:middle;dominant-baseline:middle;pointer-events:none;font-size:15px;font-weight:900}.node-name{fill:#111827;pointer-events:none;font-size:14px;font-weight:900}.node-role{fill:#64748b;pointer-events:none;font-size:11px;font-weight:760}.node-meta{fill:#94a3b8;letter-spacing:.08em;pointer-events:none;font-size:8px;font-weight:900}.node-chip-group{pointer-events:none}.node-chip{fill:#0f172a0e;pointer-events:none}.node-chip-text{fill:#475569;pointer-events:none;font-size:9px;font-weight:850}.floating-hint{z-index:4;color:#111827b8;max-width:min(520px,100% - 44px);box-shadow:var(--soft-shadow);background:#fff;border:1px solid #11182714;border-radius:999px;padding:10px 15px;font-size:12px;font-weight:800;position:absolute;bottom:22px;left:22px}.canvas-context-menu{z-index:12;transform-origin:0 0;background:#fff;border:1px solid #1118271a;border-radius:22px;width:218px;max-height:calc(100% - 24px);padding:8px;animation:.14s both contextMenuIn;position:absolute;overflow:auto;box-shadow:0 26px 70px #0f172a33}.context-menu-caption{border-bottom:1px solid #11182712;margin-bottom:6px;padding:8px 10px 9px}.context-menu-caption span,.context-menu-caption small{display:block}.context-menu-caption span{font-size:12px;font-weight:900}.context-menu-caption small{color:var(--muted-2);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:11px;font-weight:800;overflow:hidden}.canvas-context-menu button{width:100%;box-shadow:none;text-align:left;background:0 0;border:0;border-radius:15px;grid-template-columns:28px 1fr;align-items:center;gap:9px;padding:10px;display:grid}.canvas-context-menu button:hover:not(:disabled){box-shadow:none;background:#0f766e14;transform:none}.canvas-context-menu button i{background:#1118270f;border-radius:10px;place-items:center;width:28px;height:28px;display:grid}.canvas-context-menu button span{font-size:13px;font-weight:850}.canvas-context-menu .context-menu-danger{color:var(--danger)}.canvas-context-menu .context-menu-danger i{background:#c2410c1a}.canvas-context-menu .context-menu-danger:hover:not(:disabled){background:var(--danger-bg)}@keyframes contextMenuIn{0%{opacity:0;transform:translateY(-4px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.lasso-box{z-index:5;pointer-events:none;background:#14b8a61a;border:1px solid #0f766eb3;border-radius:10px;display:none;position:absolute}.minimap{z-index:3;width:158px;height:108px;box-shadow:var(--soft-shadow);cursor:grab;background:#fff;border:1px solid #11182714;border-radius:20px;position:absolute;top:18px;right:18px;overflow:hidden}.minimap:hover{border-color:#0f766e52}.minimap:active{cursor:grabbing}.mini-content,.mini-viewport{position:absolute;inset:8px}.mini-node{border:1px solid #fff;border-radius:999px;width:6px;height:6px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 1px 4px #0f172a29}.mini-line{transform-origin:0;background:#64748b73;height:1px;position:absolute}.mini-viewport{cursor:grab;pointer-events:auto;border:1px solid #11182752;border-radius:10px}.mini-viewport:active{cursor:grabbing}.inspector-card{flex-direction:column;flex:none;min-height:0;display:flex;overflow:hidden}.icon-danger,.ghost-icon{place-items:center;width:36px;height:36px;padding:0;display:grid}.icon-danger{color:var(--danger)}.empty-state{text-align:center;align-content:center;place-items:center;min-height:292px;display:grid}.empty-state p{max-width:250px;color:var(--muted);margin:10px auto 0;font-size:13px;line-height:1.6}.empty-icon{color:#fff;background:#111827;border-radius:28px;place-items:center;width:72px;height:72px;margin-bottom:16px;display:grid}.inspector-form.hidden,.empty-state.hidden{display:none}.inspector-form{flex-direction:column;min-width:0;padding-right:0;display:flex}.inspector-form .field-label{margin:10px 0 6px}.inspector-form input,.inspector-form select,.inspector-form textarea{min-width:0;max-width:100%}.avatar-editor{grid-template-columns:72px minmax(0,1fr);align-items:center;gap:12px;display:grid}.avatar-preview{color:#fff;border:1px solid #ffffffad;border-radius:22px;place-items:center;width:62px;height:62px;margin:2px 0 8px;font-size:22px;font-weight:900;display:grid;overflow:hidden}.avatar-preview img{object-fit:cover;width:100%;height:100%}.avatar-actions{gap:8px;display:grid}.avatar-actions button{padding:9px 10px}.inspector-control-block{min-width:0}.inspector-color-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.inspector-form textarea{min-height:88px}.two-col{grid-template-columns:1fr 82px;gap:12px;display:grid}.three-col{grid-template-columns:1fr;align-items:end;gap:2px;display:grid}.relation-summary{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:18px;padding:12px;font-size:13px;font-weight:800;line-height:1.5}.stats-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.stat-box{border:1px solid var(--line);background:#fff;border-radius:18px;padding:12px}.stat-box strong{letter-spacing:-.04em;font-size:22px;display:block}.stat-box span{color:var(--muted-2);font-size:11px;font-weight:900}.legend{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.legend-chip{color:var(--muted);border:1px solid var(--line);background:#fff;border-radius:999px;align-items:center;gap:6px;padding:6px 9px;font-size:11px;font-weight:800;display:flex}.legend-dot{border-radius:999px;width:8px;height:8px}.timeline-card{flex-direction:column;flex:0 0 360px;min-height:360px;display:flex}.snapshot-row{cursor:default;grid-template-columns:1fr auto}.snapshot-actions{gap:6px;display:flex}.snapshot-actions button{border-radius:10px;width:30px;height:30px;padding:0}.modal{border:0;border-radius:30px;width:min(440px,100vw - 32px);padding:0;box-shadow:0 36px 90px #0f172a38}.json-modal{width:min(760px,100vw - 32px)}.image-export-modal{width:min(560px,100vw - 32px)}.modal-layer{z-index:9999;background:#0f172a47;place-items:center;padding:16px;animation:.22s both backdropFadeIn;display:grid;position:fixed;inset:0}.modal-body{background:#fff;margin:0;padding:22px;animation:.24s cubic-bezier(.22,1,.36,1) both modalPopIn}.modal-title{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px;display:flex}.modal-copy{color:var(--muted);font-size:13px;line-height:1.6}@keyframes leftColumnIn{0%{opacity:0;transform:translate(-28px)}to{opacity:1;transform:translate(0)}}@keyframes rightColumnIn{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:translate(0)}}@keyframes toolbarIn{0%{opacity:0;transform:translateY(-24px)}to{opacity:1;transform:translateY(0)}}@keyframes canvasIn{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes modalPopIn{0%{opacity:0;transform:translateY(10px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes backdropFadeIn{0%{opacity:0}to{opacity:1}}.json-paste-box{white-space:pre;min-height:340px;font-family:Cascadia Mono,SFMono-Regular,Consolas,monospace;font-size:12px;line-height:1.55}.export-options-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.export-scope-list{gap:10px;display:grid}.export-scope-list label{border:1px solid var(--line);cursor:pointer;border-radius:16px;grid-template-columns:auto 1fr;align-items:start;gap:10px;padding:12px;display:grid}.export-scope-list strong,.export-scope-list small{display:block}.export-scope-list small{color:var(--muted-2);margin-top:3px;font-size:12px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.shortcut-grid{grid-template-columns:130px 1fr;align-items:center;gap:10px 14px;display:grid}.shortcut-grid span{border:1px solid var(--line);text-align:center;background:#1118270d;border-radius:11px;padding:8px 10px;font-size:12px;font-weight:900}.shortcut-grid p{color:var(--muted);margin:0;font-size:13px;font-weight:700}.toast{z-index:20;color:#fff;opacity:0;pointer-events:none;background:#111827;border-radius:999px;max-width:420px;padding:12px 18px;font-size:13px;font-weight:800;transition:opacity .18s,transform .18s;position:fixed;bottom:24px;left:50%;transform:translate(-50%,16px);box-shadow:0 20px 55px #0f172a38}.toast.show{opacity:1;transform:translate(-50%)}@media (width<=1220px){.app-shell{grid-template-columns:286px minmax(420px,1fr)}.right-panel{z-index:9;width:min(390px,100vw - 36px);max-height:calc(100vh - 116px);position:fixed;top:96px;right:18px;overflow:hidden}}@media (width<=860px){body{overflow:hidden}.app-shell{grid-template-columns:1fr;height:auto;min-height:100vh}.workspace{min-height:72vh}.right-panel{width:auto;max-height:none;position:static}.topbar{grid-template-columns:1fr;height:auto}}
