@layer base,components,utilities;@layer base{:root{--h: 220;--s: 12%;--bg-primary: hsl(var(--h), var(--s), 10%);--bg-secondary: hsl(var(--h), var(--s), 15%);--bg-tertiary: hsl(var(--h), var(--s), 20%);--bg-hover: hsla(0, 0%, 100%, .05);--text-primary: hsl(200, 40%, 85%);--text-secondary: hsl(200, 15%, 65%);--text-dim: hsla(200, 15%, 65%, .5);--accent-h: 199;--accent: hsl(var(--accent-h), 92%, 64%);--accent-muted: hsla(var(--accent-h), 92%, 64%, .2);--accent-glow: 0 0 15px hsla(var(--accent-h), 92%, 64%, .3);--danger: hsl(0, 85%, 65%);--success: hsl(145, 45%, 65%);--info: hsl(210, 85%, 75%);--warning: hsl(45, 100%, 60%);--gold: hsl(50, 100%, 50%);--border-light: hsla(0, 0%, 100%, .15);--border-dim: hsla(0, 0%, 100%, .05);--glass-bg: hsla(var(--h), var(--s), 12%, .7);--glass-border: hsla(0, 0%, 100%, .1);--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--font: "Inter", "Outfit", system-ui, -apple-system, sans-serif;--text-xs: .75rem;--text-sm: .85rem;--text-base: .95rem;--text-lg: 1.1rem;--text-xl: 1.5rem;--br-sm: 6px;--br-md: 10px;--br-lg: 16px;--br-pill: 9999px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .2);--shadow-md: 0 8px 24px rgba(0, 0, 0, .4);--shadow-lg: 0 16px 48px rgba(0, 0, 0, .6);--outline-width: 300px;--header-height: 48px;--toolbar-height: 48px;--tab-bar-height: 36px;--footer-height: 40px;--z-base: 1;--z-nav: 1000;--z-header: 9000;--z-fab: 10005;--z-modal: 10000;--z-tooltip: 3000;--icon-sm: 16px;--icon-md: 20px;--trans-fast: .1s ease;--trans-base: .2s cubic-bezier(.4, 0, .2, 1);--trans-slow: .4s cubic-bezier(.4, 0, .2, 1)}.glass{background:var(--glass-bg);backdrop-filter:blur(12px) saturate(160%);border:1px solid var(--glass-border);box-shadow:var(--shadow-md)}.glass-dark{background:#0006;backdrop-filter:blur(20px);border:1px solid hsla(0,0%,100%,.05)}:where(*){box-sizing:border-box;scrollbar-width:thin;scrollbar-color:hsla(0,0%,100%,.08) transparent}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:var(--br-pill);transition:background var(--trans-base)}::-webkit-scrollbar-thumb:hover{background:#fff3}body{margin:0;overflow:hidden;font-family:var(--font);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;line-height:1.5;--sidebar-w: var(--outline-width)}body.collapsed{--sidebar-w: 0px}body.outline-resizing{--sidebar-w: var(--outline-width)}::selection{background:var(--accent-muted);color:var(--accent)}}body.no-animations *{animation-duration:0s!important;transition-duration:0s!important}canvas{touch-action:none}#app-root{touch-action:pan-x pan-y}@media(max-width:768px){input,textarea,[contenteditable=true],.ql-editor,.editable-text{font-size:16px!important}.mobile-label-bar .editable-text:empty:before{content:"Click here to add node label...";color:var(--text-dim);pointer-events:none;display:block}}@layer components{:is(.layout-node,.pane-node){display:flex;flex:1;overflow:hidden;position:relative;height:100%}.layout-node{flex-direction:row}.pane-node{flex-direction:column;background:var(--bg-primary);border:1px solid var(--border-light)}.pane-node.active-pane{border-color:var(--accent);box-shadow:0 0 15px var(--accent-muted);z-index:20}.pane-content{flex:1;position:relative;overflow:visible}.pane-header{display:flex;align-items:center;background:var(--bg-primary);border-bottom:1px solid var(--border-light);min-height:40px}.pane-header{height:var(--header-height);padding-inline:var(--space-sm);flex-shrink:0;background:var(--bg-secondary)}#outline-panel{position:fixed;inset-block-start:0;inset-block-end:0;inset-inline-start:0;width:var(--sidebar-w);background:var(--bg-secondary);border-inline-end:1px solid var(--border);z-index:3000;display:flex;flex-direction:column;overflow:hidden;transition:all .22s cubic-bezier(.2,.7,.3,1)}body.collapsed #outline-panel{transform:translate(-100%)}body.email-verify-banner-visible #outline-panel,body.demo-banner-visible #outline-panel{inset-block-start:var(--email-verify-banner-h, var(--demo-banner-h, 0px))}body.outline-resizing #outline-panel{transform:none;transition:none}.panel-content{flex:1;overflow-y:auto;overflow-x:hidden;position:relative;padding-block:var(--space-sm)}.outline-virtual-spacer{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;pointer-events:none}.outline-virtual-container{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;will-change:transform}#network{position:absolute;inset:0;background:var(--bg-primary);margin-inline-start:var(--sidebar-w, 0px);inset-inline-end:var(--right-panel-w, 0px);transition:margin-inline-start .22s cubic-bezier(.2,.7,.3,1),inset-inline-end .22s cubic-bezier(.2,.7,.3,1),inset-block-start .22s cubic-bezier(.2,.7,.3,1)}body.email-verify-banner-visible #network,body.demo-banner-visible #network{inset-block-start:var(--email-verify-banner-h, var(--demo-banner-h, 0px))}.pane-tree-host{flex:1;height:100%;width:100%;overflow:hidden}.layout-node.split-node{display:flex;height:100%;width:100%;overflow:hidden}.split-node.horizontal{flex-direction:row}.split-node.vertical{flex-direction:column}.split-separator{flex:0 0 4px;background:var(--border-dim);transition:background var(--trans-fast);z-index:5;position:relative;touch-action:none}.split-separator.horizontal{cursor:col-resize}.split-separator.vertical{cursor:row-resize}.split-separator:before{content:"";position:absolute}.split-separator.horizontal:before{inset:0 -14px}.split-separator.vertical:before{inset:-14px 0}.split-separator:hover{background:var(--accent)}@media(hover:none){.split-separator:active{background:var(--accent)}}.pane-node{display:flex;flex-direction:column;min-width:80px;min-height:80px;position:relative;overflow:hidden;background:var(--bg-primary);border:1px solid transparent}.pane-node.active-pane{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-muted)}.pane-header{display:flex;align-items:stretch;flex-shrink:0;height:40px;background:var(--bg-secondary);border-bottom:1px solid var(--border-light);overflow:hidden}.pane-tab-strip{display:flex;flex:1;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.pane-tab-strip::-webkit-scrollbar{display:none}.pane-tab{display:inline-flex;align-items:center;gap:6px;padding:0 10px;max-width:180px;min-width:60px;flex-shrink:0;border-right:1px solid var(--border-dim);color:var(--text-secondary);cursor:pointer;user-select:none;font-size:12px;transition:background var(--trans-fast),color var(--trans-fast)}.pane-tab:hover{background:var(--bg-hover)}@media(hover:none){.pane-tab:active{background:var(--bg-hover)}}.pane-tab.active{background:var(--bg-primary);color:var(--text-primary);border-bottom:2px solid var(--accent)}.pane-tab{position:relative}.pane-tab.drop-before{box-shadow:-3px 0 0 var(--accent)}.pane-tab.drop-after{box-shadow:3px 0 0 var(--accent)}.pane-tab-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.graph-title{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.graph-title:focus{overflow-x:auto;text-overflow:clip;scrollbar-width:none}.graph-title:focus::-webkit-scrollbar{display:none}.pane-tab-close{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:14px;line-height:1;padding:2px 4px;border-radius:var(--br-sm);opacity:.6;transition:opacity var(--trans-fast),background var(--trans-fast)}.pane-tab-close:hover{opacity:1}@media(hover:none){.pane-tab-close:active{opacity:1}}.pane-tab-add{flex-shrink:0;background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:16px;padding:0 10px;line-height:1;transition:color var(--trans-fast)}.pane-tab-add:hover{color:var(--accent)}@media(hover:none){.pane-tab-add:active{color:var(--accent)}}.pane-content{flex:1;position:relative;overflow:hidden}.drop-overlay{position:absolute;pointer-events:none;background:var(--accent-muted);border:2px dashed var(--accent);border-radius:0;z-index:10000;opacity:0;transition:opacity var(--trans-fast),inset var(--trans-fast);inset:0}.drop-overlay.visible{opacity:.7;border-radius:0}.drop-overlay.visible.left{inset:0 50% 0 0}.drop-overlay.visible.right{inset:0 0 0 50%}.drop-overlay.visible.top{inset:0 0 50%}.drop-overlay.visible.bottom{inset:50% 0 0}.drop-overlay.visible.center{inset:8px}.focus-breadcrumb{position:absolute;inset-block-start:48px;inset-inline-start:8px;z-index:100;display:flex;align-items:center;gap:2px;padding:4px 6px;border-radius:var(--br-md);font-size:var(--text-xs);color:var(--text-secondary);max-width:calc(100% - 16px);overflow:hidden}.canvas-tagbar{position:absolute;inset-block-end:8px;inset-inline-start:36px;z-index:100;display:flex;align-items:center;gap:4px;padding:4px 6px;border-radius:var(--br-md);font-size:var(--text-xs);color:var(--text-secondary)}.canvas-tagbar .tag-label{font-size:7px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;user-select:none;flex-shrink:0;margin-inline-end:2px;line-height:1.1}.canvas-tagbar .tag-swatch{width:14px;height:14px;border-radius:3px;cursor:pointer;flex-shrink:0;transition:border .15s,box-shadow .15s}.focus-breadcrumb .crumb{display:inline-flex;align-items:center;gap:2px;padding:2px 6px;border:none;background:transparent;color:inherit;font:inherit;cursor:pointer;border-radius:var(--br-sm);white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis;transition:background var(--trans-fast),color var(--trans-fast)}.focus-breadcrumb .crumb:hover:not(:disabled){background:var(--bg-hover);color:var(--accent)}@media(hover:none){.focus-breadcrumb .crumb:active:not(:disabled){background:var(--bg-hover);color:var(--accent)}}.focus-breadcrumb .crumb-current{color:var(--accent);cursor:default}.focus-breadcrumb .crumb-current:disabled{opacity:1}.focus-breadcrumb .crumb-sep{opacity:.4;margin:0 2px}.focus-breadcrumb .crumb-group{display:inline-flex;align-items:center}@media(max-width:768px){.focus-breadcrumb{transform:scale(1.2);transform-origin:top left;height:24px}.canvas-tagbar{transform:scale(1.2);transform-origin:bottom left;height:24px}body.mobile-preview-bar-visible .canvas-tagbar{inset-block-end:56px}.canvas-tagbar .tag-swatch{width:18px;height:18px}.email-verify-banner{flex-wrap:nowrap;padding:6px 10px}.email-verify-banner__msg{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:start}.email-verify-banner__msg-tail,.email-verify-banner__wrong-email{display:none}}.no-transition{transition:none!important}#outline-resize-handle,.tooltip-resize-handle{position:fixed;inset-block:0;width:8px;cursor:col-resize;z-index:3001}#outline-resize-handle{inset-inline-start:var(--sidebar-w, 0px);transition:inset-inline-start .22s cubic-bezier(.2,.7,.3,1)}body.email-verify-banner-visible #outline-resize-handle,body.demo-banner-visible #outline-resize-handle,body.email-verify-banner-visible .tooltip-resize-handle,body.demo-banner-visible .tooltip-resize-handle{inset-block-start:var(--email-verify-banner-h, var(--demo-banner-h, 0px))}.tooltip-resize-handle.dock-right{inset-inline-end:var(--right-panel-w, 0px);transition:inset-inline-end .22s cubic-bezier(.2,.7,.3,1)}body.outline-resizing #outline-resize-handle,body.detail-resizing .tooltip-resize-handle{transition:none}#outline-resize-handle:after,.tooltip-resize-handle:after{content:"";position:absolute;inset-block-start:50%;inset-inline-start:50%;transform:translate(-50%,-50%);width:2px;height:36px;background:var(--border-light);border-radius:2px;transition:background var(--trans-fast),height var(--trans-fast),box-shadow var(--trans-fast)}#outline-resize-handle:hover:after,#outline-resize-handle.resizing:after,.tooltip-resize-handle:hover:after,.tooltip-resize-handle.resizing:after{background:var(--accent);height:56px;box-shadow:0 0 6px var(--accent)}@media(hover:none){#outline-resize-handle:active:after,.tooltip-resize-handle:active:after{background:var(--accent);height:56px;box-shadow:0 0 6px var(--accent)}}body.collapsed #outline-resize-handle:after,body:not(.detail-open) .tooltip-resize-handle:after{background:var(--accent);height:48px;box-shadow:0 0 8px var(--accent);opacity:.9}#outline-resize-handle:focus-visible,.tooltip-resize-handle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}@media(max-width:768px){#outline-panel{width:100vw;height:100vh;height:100dvh;touch-action:pan-y;box-shadow:4px 0 24px #00000080;z-index:3000;transition:none!important}body.email-verify-banner-visible #outline-panel,body.demo-banner-visible #outline-panel{height:calc(100dvh - var(--email-verify-banner-h, var(--demo-banner-h, 0px)))!important}#outline-panel-content{touch-action:pan-y}body.outline-open #network,#network{margin-inline-start:0!important}}}@media(max-width:768px){body.outline-open .mobile-canvas-actions{display:none}}@media(max-width:768px){:root{--outline-width: 100vw}}@layer components{:is(.btn,.primary-btn,.secondary-btn,.danger-btn,.icon-btn,.list-item,.search-result-item,.menu-item,.cloud-graph-item){display:inline-flex;align-items:center;border:none;cursor:pointer;transition:all var(--trans-base);border-radius:var(--br-sm);font-family:inherit}:is(.btn,.primary-btn,.secondary-btn,.danger-btn){padding:var(--space-sm) var(--space-lg);gap:var(--space-sm);font-size:var(--text-sm);font-weight:600;background:var(--bg-tertiary);color:var(--text-primary)}.primary-btn{background:var(--accent);color:var(--black)}.secondary-btn{background:var(--bg-secondary);border:1px solid var(--border-light)}.danger-btn{background:var(--danger);color:var(--white)}[data-tooltip]{position:relative}[data-tooltip]:before{content:attr(data-tooltip);position:absolute;opacity:0;pointer-events:none;transition:all var(--trans-base) .1s;z-index:var(--z-tooltip);background:var(--bg-tertiary);color:var(--text-primary);padding:6px 10px;border-radius:var(--br-sm);font-size:var(--text-xs);white-space:nowrap;border:1px solid var(--border-light);box-shadow:var(--shadow-sm)}[data-tooltip]:hover:before{opacity:1}@media(hover:none){[data-tooltip]:active:before{opacity:1}}.icon-btn{width:28px;height:28px;padding:0;justify-content:center;background:transparent;color:var(--text-secondary);position:relative}.icon-btn svg{width:var(--icon-md);height:var(--icon-md);stroke:currentColor;fill:none;stroke-width:2}.icon-btn.danger-icon-btn{color:var(--danger)}.icon-btn.danger-icon-btn:hover{color:var(--danger-hover, #e55);background:#ff50501a}@media(hover:none){.icon-btn.danger-icon-btn:active{color:var(--danger-hover, #e55);background:#ff50501a}}:is(.list-item,.search-result-item,.menu-item,.cloud-graph-item){width:100%;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-dim);color:var(--text-primary);font-size:var(--text-sm);border-radius:0;gap:var(--space-sm)}.search-result-snippet em,.search-result-name em{font-style:normal;color:var(--accent);font-weight:600}:is(.list-item,.search-result-item,.menu-item,.cloud-graph-item,.btn,.primary-btn,.secondary-btn,.danger-btn,.icon-btn):hover{filter:brightness(1.2);transform:translateY(-1px);background:var(--bg-hover);color:var(--accent)}@media(hover:none){:is(.list-item,.search-result-item,.menu-item,.cloud-graph-item,.btn,.primary-btn,.secondary-btn,.danger-btn,.icon-btn):active{filter:brightness(1.2);transform:translateY(-1px);background:var(--bg-hover);color:var(--accent)}}.pane-tab{padding-block:5px;padding-inline:8px;min-width:100px;background:var(--bg-tertiary);color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;margin-inline-end:2px;border-radius:var(--br-sm) var(--br-sm) 0 0;display:flex;align-items:center;justify-content:space-between;gap:var(--space-xs);transition:all var(--trans-base)}.pane-tab.active{background:var(--bg-primary);color:var(--text-primary);border-block-start:2px solid var(--accent)}.pane-tab-close{margin-inline-start:4px;opacity:.6;transition:opacity var(--trans-fast)}.pane-tab-close:hover{opacity:1;color:var(--danger)}@media(hover:none){.pane-tab-close:active{opacity:1;color:var(--danger)}}.empty-canvas-hint{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);z-index:30;pointer-events:none;color:var(--text-dim);font-family:inherit;font-size:1.12rem;font-weight:700;text-align:center;line-height:1.4;max-width:min(360px,calc(100% - 48px));padding:8px 12px}:is(.list-item,.search-result-item,.menu-item,.cloud-graph-item) svg{width:var(--icon-sm);height:var(--icon-sm);opacity:.7;flex-shrink:0}.mobile-canvas-actions{position:fixed;inset-inline-end:20px;inset-block-end:calc(16px + env(safe-area-inset-bottom,0));display:flex;flex-direction:column;gap:8px;z-index:var(--z-fab);transition:inset-block-end .2s ease}body.mobile-preview-bar-visible .mobile-canvas-actions{inset-block-end:calc(64px + env(safe-area-inset-bottom,0))}.mobile-canvas-fab{width:48px;height:48px;border-radius:50%;background:var(--bg-secondary);border:1px solid var(--border-light);color:var(--text-primary);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md)}.mobile-canvas-fab-danger{color:var(--danger)}.mobile-canvas-fab svg{width:24px;height:24px}.mobile-canvas-fab:disabled{opacity:.35;cursor:not-allowed}.mobile-canvas-fab{transition:transform .15s ease,background-color .15s ease}.mobile-canvas-fab:active{transform:scale(.92)}.link-creation-bar{position:fixed;inset-inline-start:50%;bottom:20vh;transform:translate(-50%);z-index:var(--z-fab);background:var(--bg-secondary);border:1px solid var(--accent);border-radius:12px;padding:10px 16px;display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;box-shadow:var(--shadow-lg);color:var(--text-primary);white-space:nowrap;pointer-events:auto}.link-creation-bar .icon-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:2px 6px;border-radius:4px}.link-creation-bar .icon-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.mobile-canvas-actions-container{display:contents}.mobile-menu-backdrop{position:fixed;inset:0;background:#0006;z-index:9998;backdrop-filter:blur(4px);animation:fadeIn .2s ease forwards}.mobile-menu-sheet{position:fixed;bottom:150px;inset-inline-end:20px;display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:var(--br-lg);background:var(--bg-secondary);border:1px solid var(--border-light);box-shadow:var(--shadow-lg);z-index:9999;min-width:220px;transform-origin:bottom right;animation:slideUpScale .22s cubic-bezier(.34,1.56,.64,1) forwards}.mobile-menu-header{font-size:11px;font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;padding-bottom:6px;border-bottom:1px solid var(--border-light)}.mobile-menu-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--br-md);background:transparent;border:none;color:var(--text-primary);font-family:var(--font);font-size:14px;text-align:left;cursor:pointer;transition:background .15s ease,transform .1s ease}.mobile-menu-item:active{background:var(--bg-hover);transform:translate(-2px)}.mobile-menu-item svg{width:18px;height:18px;color:var(--text-secondary)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUpScale{0%{opacity:0;transform:scale(.85) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.perf-overlay{position:fixed;inset-block-start:10px;inset-inline-end:10px;background:#000000b3;color:#0fc;padding:10px;border-radius:4px;font-family:var(--font);font-size:12px;pointer-events:none;z-index:99999;backdrop-filter:blur(4px);border:1px solid rgba(0,255,204,.2)}.perf-row{margin-block-end:4px}.perf-overlay span{font-weight:700;color:#fff}.sync-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:999px}.toast{position:fixed;bottom:var(--space-lg, 16px);right:var(--space-lg, 16px);z-index:12000;display:flex;align-items:center;gap:var(--space-sm, 8px);padding:var(--space-md, 12px) var(--space-lg, 16px);border-radius:var(--br-md, 8px);background:var(--bg-primary, #1e1e2e);border:1px solid var(--border-light, #3a3a4a);color:var(--text-primary, #ddd);font-size:var(--text-sm, 13px);box-shadow:0 4px 12px #0000004d;max-width:360px;animation:toast-in .2s ease-out}.toast.error{border-color:var(--danger, #e74c3c)}.toast.success{border-color:var(--success, #2ecc71)}.toast.warn{border-color:var(--warning, #f39c12)}.toast.info{border-color:var(--accent, #6c5ce7)}.toast-message{flex:1;line-height:1.4}.toast-close{cursor:pointer;font-size:18px;line-height:1;opacity:.6;color:inherit;flex-shrink:0}.toast-close:hover{opacity:1}@media(hover:none){.toast-close:active{opacity:1}}.toast-fade-out{opacity:0;transition:opacity .3s ease}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}}@layer components{#node-tooltip{position:fixed;inset-block-end:0;inset-inline:var(--sidebar-w) 0;height:var(--footer-height);background:var(--bg-secondary);border-block-start:1px solid var(--border-light);z-index:var(--z-tooltip);display:none;flex-direction:column;overflow:hidden}#node-tooltip.visible{display:flex!important;height:var(--bottom-panel-h, 220px);background:var(--bg-secondary)}@keyframes gn-panel-enter-bottom{0%{transform:translateY(100%);opacity:0}to{transform:none;opacity:1}}@keyframes gn-panel-exit-bottom{0%{transform:none;opacity:1}to{transform:translateY(100%);opacity:0}}@keyframes gn-panel-enter-right{0%{transform:translate(100%);opacity:0}to{transform:none;opacity:1}}@keyframes gn-panel-exit-right{0%{transform:none;opacity:1}to{transform:translate(100%);opacity:0}}@keyframes gn-panel-enter-left{0%{clip-path:inset(0 100% 0 0);opacity:0}to{clip-path:inset(0);opacity:1}}@keyframes gn-panel-exit-left{0%{clip-path:inset(0);opacity:1}to{clip-path:inset(0 100% 0 0);opacity:0}}#node-tooltip.visible:not(.dock-right):not(.dock-left){animation:gn-panel-enter-bottom .22s cubic-bezier(.2,.7,.3,1)}#node-tooltip.visible.dock-right{animation:gn-panel-enter-right .22s cubic-bezier(.2,.7,.3,1)}#node-tooltip.visible.dock-left{animation:gn-panel-enter-left .22s cubic-bezier(.2,.7,.3,1)}#node-tooltip.closing{display:flex!important;height:var(--bottom-panel-h, 220px);background:var(--bg-secondary)}#node-tooltip.closing.dock-right{--right-panel-w: var(--right-panel-close-w, 0px);inset-block:0;inset-inline:auto 0;width:var(--right-panel-w, 380px);height:100dvh!important}#node-tooltip.closing.dock-left{inset-block:0;inset-inline-start:var(--sidebar-w, 0);inset-inline-end:auto;width:var(--left-panel-w, 380px);height:100dvh!important}#node-tooltip.closing:not(.dock-right):not(.dock-left){animation:gn-panel-exit-bottom .22s cubic-bezier(.2,.7,.3,1) forwards}#node-tooltip.closing.dock-right{animation:gn-panel-exit-right .22s cubic-bezier(.2,.7,.3,1) forwards}#node-tooltip.closing.dock-left{animation:gn-panel-exit-left .22s cubic-bezier(.2,.7,.3,1) forwards}body.no-animations #node-tooltip.visible,body.no-animations #node-tooltip.closing{animation:none}#node-tooltip.dock-right.visible{inset-block:0;inset-inline:auto 0;width:var(--right-panel-w, 380px);height:100dvh!important;border-block-start:none;border-inline-start:1px solid var(--border)}#node-tooltip.dock-left.visible{inset-block:0;inset-inline-start:var(--sidebar-w, 0);inset-inline-end:auto;width:var(--left-panel-w, 380px);height:100dvh!important;border-block-start:none;border-inline-end:1px solid var(--border)}body.email-verify-banner-visible #node-tooltip.dock-right.visible,body.email-verify-banner-visible #node-tooltip.dock-left.visible,body.email-verify-banner-visible #node-tooltip.closing.dock-right,body.email-verify-banner-visible #node-tooltip.closing.dock-left,body.demo-banner-visible #node-tooltip.dock-right.visible,body.demo-banner-visible #node-tooltip.dock-left.visible,body.demo-banner-visible #node-tooltip.closing.dock-right,body.demo-banner-visible #node-tooltip.closing.dock-left{inset-block-start:var(--email-verify-banner-h, var(--demo-banner-h, 0px))!important;height:calc(100dvh - var(--email-verify-banner-h, var(--demo-banner-h, 0px)))!important}.dock-buttons{position:absolute;inset-block-start:8px;inset-inline-end:10px;z-index:6;display:flex;gap:4px}#tooltip-content{display:flex;flex-direction:column;flex:1;min-height:0;padding-block:var(--space-sm);padding-inline:var(--space-md);overflow:auto;position:relative}.tooltip-title{flex-shrink:0;font-size:var(--text-lg);color:var(--text-primary);border-radius:var(--br-sm);min-width:0;white-space:nowrap;overflow:hidden;transition:color var(--trans-fast)}#node-tooltip.selected .tooltip-title{color:var(--accent)}.tooltip-editable{cursor:text;background:transparent;border:none;outline:none}.tooltip-editable:focus{outline:none}.detail-header{display:flex;align-items:center;gap:8px;padding:0 12px;height:40px;flex-shrink:0;background:var(--bg-tertiary);border-bottom:1px solid var(--glass-border);box-sizing:border-box}#node-tooltip.selected .detail-header .tooltip-title{color:var(--accent)}#quill-editor-container{flex:1;min-height:0;border:none!important;overflow:auto;padding-block-end:36px}.ql-editor{padding-block:8px!important;padding-inline:0!important;color:var(--text-primary);min-height:100%;box-sizing:border-box}.ql-editor img{max-width:100%;max-height:200px;width:auto;height:auto;border-radius:4px;margin:4px 0;cursor:zoom-in}.graphy-image-lightbox{position:fixed;inset:0;z-index:100001;background:#000000d9;display:flex;align-items:center;justify-content:center;cursor:zoom-out}.graphy-image-lightbox img{max-width:92vw;max-height:92vh;border-radius:6px;box-shadow:0 8px 40px #0009}.ql-snow :is(.ql-stroke,.ql-fill,.ql-picker){stroke:var(--text-secondary)!important;fill:var(--text-secondary)!important;color:var(--text-secondary)!important}.ql-editor.ql-blank:before{left:0!important;color:#ffffff8c!important;font-style:normal!important}.detail-section-separator{height:1px;background:var(--glass-border);margin:4px 0 8px;flex-shrink:0}#quill-toolbar-container{display:flex;align-items:center;gap:2px;background:none;border:none;padding:0;overflow-x:auto}#tooltip-footer{display:flex;align-items:center;gap:6px;padding:0 8px;border-block-start:1px solid var(--glass-border);background:var(--bg-tertiary);height:40px;flex-shrink:0;box-sizing:border-box;z-index:5;overflow:hidden}.tooltip-footer-separator{width:1px;height:20px;background:var(--glass-border);flex-shrink:0}#tooltip-footer #quill-toolbar-container{flex:1;min-width:0;display:flex;align-items:end;gap:2px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;flex-wrap:nowrap!important;scrollbar-width:thin;margin-top:auto}#tooltip-footer #quill-toolbar-container::-webkit-scrollbar{height:1px}#tooltip-footer #quill-toolbar-container::-webkit-scrollbar-track{background:transparent}#tooltip-footer #quill-toolbar-container::-webkit-scrollbar-thumb{background:var(--border-dim);border-radius:2px}#tooltip-footer #quill-toolbar-container .ql-formats{display:inline-flex;align-items:center;margin-inline-end:4px;background:none;border:none;padding:0}#tooltip-footer #quill-toolbar-container .ql-picker{display:inline-flex;align-items:center}#tooltip-footer #quill-toolbar-container,#tooltip-footer #quill-toolbar-container .ql-toolbar{border:none!important;background:none!important;padding:0!important}#tooltip-footer #quill-toolbar-container button,#tooltip-footer #quill-toolbar-container .ql-picker,#tooltip-footer #quill-toolbar-container .ql-picker-label{border:none!important;background:none!important;outline:none!important;box-shadow:none!important;color:var(--text-secondary);height:22px;flex-shrink:0}#tooltip-footer #quill-toolbar-container .ql-picker-label{border:none!important;padding-inline:4px}#tooltip-footer #quill-toolbar-container .ql-picker-options{border:none!important;background:var(--bg-primary)!important}#tooltip-footer #quill-toolbar-container svg .ql-stroke,#tooltip-footer #quill-toolbar-container svg .ql-stroke-miter{stroke:var(--text-secondary)}#tooltip-footer #quill-toolbar-container svg .ql-fill{fill:var(--text-secondary)}#tooltip-footer #quill-toolbar-container button:hover,#tooltip-footer #quill-toolbar-container .ql-picker-label:hover{color:var(--text-primary);background:var(--bg-secondary)!important;border-radius:4px}#tooltip-footer #quill-toolbar-container button:hover svg .ql-stroke,#tooltip-footer #quill-toolbar-container .ql-picker-label:hover svg .ql-stroke{stroke:var(--text-primary)}#tooltip-footer #quill-toolbar-container button:hover svg .ql-fill,#tooltip-footer #quill-toolbar-container .ql-picker-label:hover svg .ql-fill{fill:var(--text-primary)}#tooltip-footer #quill-toolbar-container button.ql-active,#tooltip-footer #quill-toolbar-container .ql-picker-label.ql-active{color:var(--accent)!important}#tooltip-footer #quill-toolbar-container button.ql-active svg .ql-stroke,#tooltip-footer #quill-toolbar-container .ql-picker-label.ql-active svg .ql-stroke{stroke:var(--accent)}#tooltip-footer #quill-toolbar-container button.ql-active svg .ql-fill,#tooltip-footer #quill-toolbar-container .ql-picker-label.ql-active svg .ql-fill{fill:var(--accent)}.outline-item{display:flex;align-items:center;padding:0;padding-inline-start:calc(var(--outline-level, 0) * 12px + 5px);color:var(--text-primary);cursor:pointer;border-inline-start:3px solid transparent;line-height:18px}.outline-item.focused{border-inline-start-color:var(--accent)}.outline-focus-btn{display:flex;align-items:center;justify-content:center;width:18px;height:18px;flex-shrink:0;margin-inline-start:4px;border-radius:var(--br-sm);color:var(--text-secondary);opacity:0;cursor:pointer;background:none;border:none;padding:0;transition:opacity var(--trans-fast),transform var(--trans-fast),color var(--trans-fast)}.outline-item:hover .outline-focus-btn{opacity:.5}@media(hover:none){.outline-item .outline-focus-btn{opacity:.35}}.outline-item.focused .outline-focus-btn{opacity:.7;color:var(--accent)}.outline-focus-btn:hover{opacity:1!important;color:var(--accent);transform:scale(1.1)}@media(hover:none){.outline-focus-btn:active{opacity:1!important;color:var(--accent);transform:scale(1.1)}}.outline-item.selected{border-inline-start-color:var(--accent);background:var(--bg-tertiary)}.outline-toggle{width:16px;height:auto;line-height:inherit;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);flex-shrink:0}.outline-toggle.has-children{cursor:pointer;font-size:14px}.outline-toggle:not(.has-children){cursor:default;font-size:10px}.outline-label-container{flex:1;min-width:0;padding-inline-start:2px}.outline-label{display:block;white-space:pre-wrap;word-break:break-word;font-size:var(--text-sm);outline:none;line-height:inherit}.outline-label.editable{background:var(--bg-primary);box-shadow:0 0 0 1px var(--accent);border-radius:var(--br-sm)}.input-control{width:100%;background:var(--bg-primary);border:1px solid var(--border-light);color:var(--text-primary);padding:var(--space-sm) var(--space-md);border-radius:var(--br-sm);font-family:inherit;font-size:var(--text-sm)}.input-control:focus{outline:none;border-color:var(--accent)}@media(max-width:768px){#node-tooltip.is-mobile.visible{animation:gn-panel-enter-right .22s cubic-bezier(.2,.7,.3,1)!important}#node-tooltip.is-mobile.closing{animation:none!important;opacity:0;transition:opacity .18s ease}#node-tooltip.is-mobile.visible,#node-tooltip.is-mobile.closing{width:100vw!important;touch-action:pan-y;border-block-start:1px solid var(--glass-border);border-inline-start:1px solid var(--glass-border);padding-block-end:env(safe-area-inset-bottom,0);box-shadow:-8px 0 32px #0003}#node-tooltip.is-mobile #tooltip-content{touch-action:pan-y}#node-tooltip.is-mobile .dock-buttons{display:none}.mobile-sheet-handle{width:100%;height:16px;cursor:ns-resize;touch-action:none;display:flex;align-items:center;justify-content:center;flex-shrink:0}.mobile-sheet-handle:after{content:"";width:36px;height:4px;border-radius:2px;background:#ffffff4d}#outline-resize-handle,.tooltip-resize-handle{display:none}#node-tooltip.sheet-dragging{transition:none!important}#quill-toolbar-container,.ql-toolbar{overflow-x:auto;overflow-y:hidden;white-space:nowrap;flex-wrap:nowrap!important}#quill-toolbar-container::-webkit-scrollbar,.ql-toolbar::-webkit-scrollbar{display:none}}}@layer components{:is(.overlay,.modal-overlay){position:fixed;inset:0;z-index:var(--z-modal);background:var(--overlay-bg);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center}:is(.overlay,.modal-overlay):is(.visible,.active){display:flex!important}.modal-content{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--br-lg);box-shadow:var(--shadow-lg);padding:var(--space-xl);position:relative;animation:pop var(--trans-base) var(--ease-elastic);max-width:95vw;max-height:85vh;min-width:320px;width:min(800px,95vw)}@media(max-width:480px){.modal-content{min-width:auto;max-width:98vw;max-height:90vh;padding:var(--space-md);margin-block-start:5vh}.modal-overlay{align-items:center!important;padding-top:0!important}}.toast{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-light);border-inline-start:4px solid var(--accent);padding:var(--space-md) var(--space-lg);border-radius:var(--br-sm);box-shadow:var(--shadow-md);font-size:var(--text-sm);display:flex;align-items:center;gap:var(--space-md);min-width:250px;animation:slideIn var(--trans-slow) ease-out forwards}.premium-badge{background:var(--gold);color:var(--black);padding:1px 4px;border-radius:3px;font-weight:800;font-size:9px}.free-badge{background:var(--bg-tertiary);color:var(--text-dim);padding:1px 4px;border-radius:3px;font-weight:600;font-size:9px;border:1px solid var(--border-dim)}.search-results{margin-block-start:var(--space-lg);max-height:400px;overflow-y:auto}}h1,h2,h3,h4{letter-spacing:-.02em;font-weight:700}.toolbar-container,.outline-panel,.node-tooltip{background-image:linear-gradient(to bottom,hsla(0,0%,100%,.03),transparent)}.icon-btn{position:relative;overflow:hidden;transition:transform .2s cubic-bezier(.175,.885,.32,1.275),box-shadow .2s ease,background .2s ease}.icon-btn:hover{transform:scale(1.1);box-shadow:0 0 15px hsla(var(--accent-h),100%,50%,.2)}.icon-btn:active{transform:scale(.95)}@media(hover:none){.icon-btn:active{transform:scale(1.1);box-shadow:0 0 15px hsla(var(--accent-h),100%,50%,.2)}}.icon-btn.active{background:var(--accent-muted)!important;color:var(--accent)!important;box-shadow:inset 0 0 10px hsla(var(--accent-h),100%,50%,.1)}.outline-item.selected{position:relative;z-index:1}.outline-item.selected:before{content:"";position:absolute;inset:0;background:var(--accent-muted);border-left:3px solid var(--accent);animation:pulse-border 2s infinite;pointer-events:none}@keyframes pulse-border{0%{opacity:.5;box-shadow:inset 5px 0 10px hsla(var(--accent-h),100%,50%,.1)}50%{opacity:1;box-shadow:inset 5px 0 20px hsla(var(--accent-h),100%,50%,.2)}to{opacity:.5;box-shadow:inset 5px 0 10px hsla(var(--accent-h),100%,50%,.1)}}@layer utilities{.flex{display:flex}.flex-between{display:flex;align-items:center;justify-content:space-between}.flex-1{flex:1;min-width:0}.full-width{width:100%}.pointer{cursor:pointer}.d-none,.hidden{display:none!important}.text-warning{color:var(--warning)!important}.m-t-lg{margin-block-start:var(--space-lg)}}
