@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f6f4fb;--bg-glow-1: rgba(124, 58, 237, .1);--bg-glow-2: rgba(8, 145, 178, .08);--surface: #ffffff;--surface-glass: rgba(255, 255, 255, .72);--surface-2: #efecf7;--border: rgba(30, 20, 60, .1);--border-strong: rgba(30, 20, 60, .18);--text: #211c33;--text-muted: #6d6685;--accent: #7c3aed;--accent-soft: rgba(124, 58, 237, .12);--accent-2: #0891b2;--accent-grad: linear-gradient(135deg, #8b5cf6, #6d28d9);--accent-text: #ffffff;--danger: #dc2626;--ok: #059669;--shadow-sm: 0 1px 3px rgba(23, 15, 45, .08), 0 4px 14px rgba(23, 15, 45, .06);--shadow-lg: 0 8px 24px rgba(23, 15, 45, .12), 0 24px 64px rgba(23, 15, 45, .1);--glow: 0 0 0 1px rgba(124, 58, 237, .25), 0 4px 24px rgba(124, 58, 237, .25)}:root[data-theme=dark]{--bg: #0e0c16;--bg-glow-1: rgba(139, 92, 246, .13);--bg-glow-2: rgba(34, 211, 238, .07);--surface: #171326;--surface-glass: rgba(23, 19, 38, .72);--surface-2: #221d38;--border: rgba(255, 255, 255, .09);--border-strong: rgba(255, 255, 255, .16);--text: #ece8f8;--text-muted: #978fb3;--accent: #8b5cf6;--accent-soft: rgba(139, 92, 246, .16);--accent-2: #22d3ee;--accent-grad: linear-gradient(135deg, #8b5cf6, #6d28d9);--accent-text: #ffffff;--danger: #f87171;--ok: #34d399;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .35), 0 4px 16px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 28px rgba(0, 0, 0, .45), 0 28px 80px rgba(0, 0, 0, .4);--glow: 0 0 0 1px rgba(139, 92, 246, .35), 0 4px 28px rgba(139, 92, 246, .35)}html,body,#root{height:100%}body{font-family:Inter Variable,Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text);overflow:hidden;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{font-weight:650;letter-spacing:-.015em}button{font-family:inherit;cursor:pointer}.board{width:100vw;height:100vh;height:100dvh}.react-flow{background:radial-gradient(1100px 700px at 12% -8%,var(--bg-glow-1),transparent 60%),radial-gradient(900px 600px at 95% 110%,var(--bg-glow-2),transparent 55%),var(--bg)}.react-flow__background{color:var(--border-strong)}.react-flow__controls{box-shadow:var(--shadow-sm);border-radius:12px;overflow:hidden;border:1px solid var(--border)}.react-flow__controls button{background:var(--surface-glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);color:var(--text);fill:var(--text)}.react-flow__controls button:hover{background:var(--surface-2)}.react-flow__minimap{background:var(--surface);border-radius:12px;border:1px solid var(--border);overflow:hidden;box-shadow:var(--shadow-sm)}.react-flow__edge-path{stroke:var(--text-muted)}.react-flow__edge.selected .react-flow__edge-path{stroke:var(--accent)}.react-flow__handle.conn-handle{width:10px;height:10px;background:var(--accent);border:2px solid var(--surface);transition:transform .15s ease-out}.react-flow__handle.conn-handle:hover{transform:scale(1.35)}.todo-node{width:220px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:12px 14px;box-shadow:var(--shadow-sm);font-size:13px;position:relative;transition:box-shadow .2s ease-out,border-color .2s ease-out}.todo-node:before{content:"";position:absolute;top:0;left:14px;right:14px;height:3px;border-radius:0 0 4px 4px;background:var(--node-accent, var(--accent-grad))}.todo-node:hover{border-color:var(--border-strong)}.todo-node.selected{box-shadow:var(--glow),var(--shadow-sm);border-color:transparent}.todo-node.capture{box-shadow:var(--glow);border-color:var(--accent)}.todo-node.mini{padding:16px 14px}.todo-node-header{display:flex;align-items:center;gap:8px}.todo-node-title{font-weight:600;flex:1;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;letter-spacing:-.01em}.priority-dot{width:11px;height:11px;border-radius:50%;flex-shrink:0;box-shadow:0 0 8px currentColor}.todo-node-meta{margin-top:9px;display:flex;flex-direction:column;gap:3px}.meta-row{display:flex;justify-content:space-between;gap:8px;font-size:11px}.meta-label{color:var(--text-muted)}.meta-value{font-weight:500;text-align:right}.todo-node-tasks{margin-top:9px;padding-top:9px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:5px}.task-row{display:flex;align-items:center;gap:7px;cursor:pointer;font-size:12px}.task-row.done span{text-decoration:line-through;color:var(--text-muted)}.task-row input{accent-color:var(--accent);cursor:pointer;width:14px;height:14px}.group-node{width:100%;height:100%;border:1.5px dashed;border-radius:18px;transition:box-shadow .15s ease-out}.group-node.capture{box-shadow:var(--glow)}.group-header{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;border-radius:16px 16px 0 0;cursor:grab;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.group-header:active{cursor:grabbing}.group-name{font-weight:650;font-size:14px;letter-spacing:-.01em}.placement-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:15;cursor:crosshair;touch-action:none}.group-preview{border:2px dashed var(--accent);background:var(--accent-soft);border-radius:18px;pointer-events:none}.placement-banner{position:fixed;top:78px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;background:var(--surface-glass);-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4);border:1px solid var(--accent);border-radius:12px;padding:9px 16px;font-size:13px;box-shadow:var(--shadow-lg);z-index:21}.toolbar{position:fixed;top:16px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;background:var(--surface-glass);-webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);border:1px solid var(--border);border-radius:16px;padding:9px 14px;box-shadow:var(--shadow-lg);z-index:20}.toolbar-brand{display:flex;align-items:center;gap:9px;margin-right:10px}.toolbar-title{font-weight:700;font-size:16px;letter-spacing:-.02em;white-space:nowrap;background:linear-gradient(120deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.toolbar-sep{width:1px;height:22px;background:var(--border-strong)}.user-chip{display:inline-flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;background:var(--surface-2);border:1px solid var(--border);border-radius:999px}.avatar{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;flex-shrink:0;background:var(--accent-grad);color:var(--accent-text);font-size:11px;font-weight:700;letter-spacing:.02em}.user-mail{font-size:12px;color:var(--text-muted);max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.burger-user{display:flex;align-items:center;gap:10px;padding:10px 13px}.burger-user .user-mail{max-width:200px;color:var(--text)}.burger-storage{padding:0 13px 10px}.user-wrap{position:relative;display:inline-flex}.user-chip{cursor:pointer;transition:border-color .2s}.user-chip:hover{border-color:var(--border-strong)}.user-popover{position:absolute;top:calc(100% + 10px);right:0;z-index:41;min-width:260px;background:var(--surface-glass);-webkit-backdrop-filter:blur(20px) saturate(1.4);backdrop-filter:blur(20px) saturate(1.4);border:1px solid var(--border);border-radius:14px;padding:8px 8px 14px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:4px;animation:modal-in .14s ease-out}.user-popover .storage-meter{padding:0 13px}.user-popover .user-mail{max-width:220px}.storage-meter{display:flex;flex-direction:column;gap:5px;font-size:11px;color:var(--text-muted);width:100%}.storage-meter-bar{height:6px;border-radius:99px;overflow:hidden;background:var(--surface-2);border:1px solid var(--border)}.storage-meter-bar i{display:block;height:100%;background:var(--accent-grad);border-radius:99px;transition:width .3s ease-out}.storage-meter-bar i.warn{background:linear-gradient(90deg,#f59e0b,#f97316)}.storage-meter-bar i.crit{background:linear-gradient(90deg,#ef4444,#dc2626)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:7px 13px;font-size:13px;font-weight:500;white-space:nowrap;transition:background .2s,border-color .2s,box-shadow .2s,opacity .2s}.btn:hover{border-color:var(--border-strong);background:var(--surface)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--accent-grad);color:var(--accent-text);border-color:transparent;font-weight:600;box-shadow:0 2px 10px #7c3aed59}.btn.primary:hover{box-shadow:0 2px 18px #7c3aed8c;background:var(--accent-grad)}.btn.danger{background:transparent;color:var(--danger);border-color:var(--danger)}.btn.danger:hover{background:#dc262614}.btn.small{padding:5px 9px;font-size:12px;border-radius:8px}.btn.icon-only{padding:7px 9px}.btn-row{display:flex;gap:6px}.btn.with-badge{position:relative}.count-badge{position:absolute;top:-7px;right:-7px;min-width:18px;height:18px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;background:var(--accent-grad);color:var(--accent-text);border-radius:999px;font-size:10.5px;font-weight:700;line-height:1;box-shadow:0 2px 8px #7c3aed73;pointer-events:none}.icon-btn{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-muted);font-size:14px;padding:5px 6px;border-radius:8px;transition:background .15s,color .15s}.icon-btn:hover{background:var(--surface-2);color:var(--text)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,textarea,select{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:8px 11px;font-size:13px;font-family:inherit;transition:border-color .2s,box-shadow .2s}input:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input.invalid{border-color:var(--danger);box-shadow:0 0 0 3px #dc262626}.center-screen{height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);color:var(--text)}.login-bg{background:radial-gradient(900px 600px at 20% 10%,var(--bg-glow-1),transparent 60%),radial-gradient(700px 500px at 85% 90%,var(--bg-glow-2),transparent 55%),var(--bg)}.login-card{display:flex;flex-direction:column;gap:14px;background:var(--surface-glass);-webkit-backdrop-filter:blur(20px) saturate(1.4);backdrop-filter:blur(20px) saturate(1.4);border:1px solid var(--border);border-radius:22px;padding:40px;width:360px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-lg)}.login-brand{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:10px}.login-brand h1{font-size:26px;letter-spacing:-.03em;background:linear-gradient(120deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.slogan{color:var(--text-muted);font-size:13px}.error{color:var(--danger);font-size:13px}.muted{color:var(--text-muted);font-size:13px}.small-text{font-size:11px}.todo-panel{position:fixed;top:0;right:0;height:100vh;height:100dvh;width:min(34vw,560px);min-width:380px;background:var(--surface-glass);-webkit-backdrop-filter:blur(22px) saturate(1.4);backdrop-filter:blur(22px) saturate(1.4);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:30;display:flex;flex-direction:column;animation:slide-in .22s ease-out}@keyframes slide-in{0%{transform:translate(48px);opacity:0}to{transform:none;opacity:1}}.panel-header{display:flex;align-items:center;gap:10px;padding:18px 18px 14px;border-bottom:1px solid var(--border)}.title-input{flex:1;font-size:16px;font-weight:600}.traffic-light{display:flex;gap:6px;background:var(--surface-2);padding:7px 9px;border-radius:999px;border:1px solid var(--border)}.traffic-light .light{width:17px;height:17px;border-radius:50%;border:none;opacity:.25;transition:opacity .15s,box-shadow .15s,transform .15s}.traffic-light .light:hover{opacity:.65}.traffic-light .light.active{opacity:1;box-shadow:0 0 10px currentColor;transform:scale(1.12)}.panel-body{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:22px}.panel-body section{display:flex;flex-direction:column;gap:9px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.section-head h3{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--text-muted);font-weight:600}.panel-footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 18px;border-top:1px solid var(--border)}.danger-zone{flex-direction:row!important;gap:8px}.meta-edit-row{display:grid;grid-template-columns:1fr 1fr auto auto;gap:6px;align-items:center}.preview-toggle{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-muted);cursor:pointer}.preview-toggle input{accent-color:var(--accent)}.task-edit-row{display:flex;align-items:center;gap:8px}.task-edit-row input[type=text],.task-edit-row input:not([type]){flex:1}.task-edit-row input.done{text-decoration:line-through;color:var(--text-muted)}.task-edit-row input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px}.color-row{display:flex;gap:7px;flex-wrap:wrap}.color-swatch{width:26px;height:26px;border-radius:9px;border:2px solid transparent;transition:transform .15s,border-color .15s}.color-swatch:hover{transform:scale(1.12)}.color-swatch.active{border-color:var(--text);transform:scale(1.12)}.color-swatch.none{background:var(--surface-2);color:var(--text-muted);border:1.5px dashed var(--border-strong);font-size:13px}.rich-editor{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--surface)}.editor-toolbar{display:flex;gap:2px;padding:6px;background:var(--surface-2);border-bottom:1px solid var(--border);flex-wrap:wrap}.editor-btn{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text);padding:6px 8px;border-radius:8px;font-size:13px;transition:background .15s,color .15s}.editor-btn:hover{background:var(--surface)}.editor-btn.active{background:var(--accent);color:var(--accent-text)}.editor-content{padding:12px;min-height:140px}.editor-content .tiptap{outline:none;min-height:120px;font-size:14px;line-height:1.6}.editor-content .tiptap p{margin-bottom:.5em}.editor-content .tiptap h2,.editor-content .tiptap h3{margin:.6em 0 .3em}.editor-content .tiptap ul,.editor-content .tiptap ol{padding-left:1.4em;margin-bottom:.5em}.editor-content .tiptap pre{background:var(--surface-2);border-radius:10px;padding:10px;font-size:12px;overflow-x:auto}.editor-content .tiptap img{max-width:100%;border-radius:10px}.attachments{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.attachment-row{display:flex;align-items:center;gap:8px;width:100%}.attachment-name{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:var(--accent);font-size:13px;text-align:left;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-name:hover{text-decoration:underline}.drawer{position:fixed;top:0;height:100vh;height:100dvh;width:min(370px,100vw);background:var(--surface-glass);-webkit-backdrop-filter:blur(22px) saturate(1.4);backdrop-filter:blur(22px) saturate(1.4);box-shadow:var(--shadow-lg);z-index:25;display:flex;flex-direction:column;animation:slide-in-left .22s ease-out}@keyframes slide-in-left{0%{transform:translate(-48px);opacity:0}to{transform:none;opacity:1}}.drawer.left{left:0;border-right:1px solid var(--border)}.drawer-header{display:flex;align-items:center;gap:8px;padding:18px;border-bottom:1px solid var(--border)}.drawer-header h2{font-size:16px;flex:1}.quick-note-input{padding:14px 18px;display:flex;flex-direction:column;gap:8px;border-bottom:1px solid var(--border)}.quick-note-input textarea{resize:vertical}.drawer-list{flex:1;overflow-y:auto;padding:14px 18px;display:flex;flex-direction:column;gap:10px}.note-row{display:flex;align-items:flex-start;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:11px 13px;box-shadow:var(--shadow-sm)}.note-text{flex:1;font-size:13px;white-space:pre-wrap;word-break:break-word}.note-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.badge{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;background:var(--accent-grad);color:var(--accent-text);font-size:10px;font-weight:600}.channel-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.collab-heading{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--text-muted);font-weight:600;margin-top:8px}.collab-row .note-actions{flex-wrap:wrap;justify-content:flex-end}.shared-mark{color:var(--accent-2);flex-shrink:0;margin-left:5px;vertical-align:-2px}.live-cursor{position:absolute;top:0;left:0;pointer-events:none;z-index:10;transform-origin:top left;transition:transform .06s linear}.live-cursor svg{fill:var(--surface);display:block}.live-cursor-label{position:absolute;top:18px;left:12px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;color:#0f1115;white-space:nowrap;box-shadow:0 2px 8px #0000004d}.count-badge.inline{position:static;margin-left:auto}.channel-row .ok{color:var(--ok);flex-shrink:0}.channel-row .pending{color:var(--text-muted);flex-shrink:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0805128c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:50}.modal-backdrop.confirm{z-index:60}.modal{background:var(--surface-glass);-webkit-backdrop-filter:blur(22px) saturate(1.4);backdrop-filter:blur(22px) saturate(1.4);border:1px solid var(--border);border-radius:20px;padding:26px;width:430px;max-width:92vw;max-height:88vh;overflow-y:auto;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:14px;animation:modal-in .2s ease-out}@keyframes modal-in{0%{transform:scale(.96);opacity:0}to{transform:none;opacity:1}}.modal.wide{width:640px}.modal h2{font-size:18px}.modal h3{font-size:14px;margin-top:8px}.modal-actions{display:flex;gap:8px;align-items:center;margin-top:6px;flex-wrap:wrap}.spacer{flex:1}.field{display:flex;flex-direction:column;gap:6px;font-size:13px}.field>span{color:var(--text-muted)}.guide{padding-left:20px;display:flex;flex-direction:column;gap:8px;font-size:13px}.guide pre{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:9px 11px;font-size:11px;overflow-x:auto;margin-top:4px;white-space:pre-wrap;word-break:break-all}.guide code,.note-text code{background:var(--surface-2);border-radius:5px;padding:1px 6px;font-size:12px}details summary{cursor:pointer;font-size:14px;margin-bottom:8px}.edge-label{position:absolute;pointer-events:all;cursor:pointer;background:var(--surface-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:999px;padding:2px 11px;font-size:11px;color:var(--text);box-shadow:var(--shadow-sm)}.landing{height:100vh;overflow-y:auto;overflow-x:hidden;background:radial-gradient(1100px 700px at 15% -5%,var(--bg-glow-1),transparent 60%),radial-gradient(900px 700px at 100% 40%,var(--bg-glow-2),transparent 55%),radial-gradient(800px 600px at 0% 95%,var(--bg-glow-1),transparent 55%),var(--bg);scroll-behavior:smooth}.landing main{max-width:1120px;margin:0 auto;padding:0 28px}.landing-nav{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 32px;background:var(--surface-glass);-webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);border-bottom:1px solid var(--border)}.landing-links{display:flex;gap:22px}.landing-links a{color:var(--text-muted);text-decoration:none;font-size:14px;font-weight:500;transition:color .2s}.landing-links a:hover{color:var(--text)}.hero{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:48px;padding:96px 0 72px;min-height:78vh}.hero-badge{display:inline-flex;align-items:center;gap:7px;background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:5px 14px;font-size:12.5px;font-weight:600;margin-bottom:22px}.hero h1{font-size:clamp(40px,5.4vw,64px);line-height:1.06;letter-spacing:-.035em;margin-bottom:22px}.hero h1 .grad,.landing h2 .grad{background:linear-gradient(120deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero-text p{font-size:17px;line-height:1.65;color:var(--text-muted);max-width:500px}.hero-actions{display:flex;gap:12px;margin-top:32px;flex-wrap:wrap}.btn.large{padding:12px 22px;font-size:15px;border-radius:13px}a.btn{text-decoration:none}.mockup{position:relative;aspect-ratio:520 / 400;background:var(--surface);background-image:radial-gradient(var(--border-strong) 1px,transparent 1px);background-size:22px 22px;border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow-lg);overflow:hidden}.mockup-stage{position:absolute;top:0;left:0;width:520px;height:400px;transform-origin:top left}.mockup-lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.mockup-lines path{stroke:var(--accent);stroke-width:1.8;stroke-dasharray:6 5;opacity:.8}.mock-group{position:absolute;top:28px;left:26px;width:300px;height:310px;border:1.5px dashed var(--accent);border-radius:18px;background:var(--accent-soft)}.mock-group-header{padding:8px 14px;font-weight:650;font-size:13px;background:var(--accent-soft);border-radius:16px 16px 0 0}.mock-card{position:absolute;width:172px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px 12px;font-size:12px;box-shadow:var(--shadow-sm)}.mock-card:before{content:"";position:absolute;top:0;left:12px;right:12px;height:3px;border-radius:0 0 4px 4px;background:var(--accent-grad)}.mock-card.floating{animation:float 5s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-9px)}}.mock-card-head{display:flex;align-items:center;justify-content:space-between;font-weight:600;margin-bottom:6px}.mock-card-head .dot{width:9px;height:9px;border-radius:50%;box-shadow:0 0 6px currentColor}.mock-task{position:relative;padding-left:20px;margin-top:4px;color:var(--text-muted);font-size:11.5px}.mock-task:before{content:"";position:absolute;left:0;top:2px;width:11px;height:11px;border:1.5px solid var(--border-strong);border-radius:4px}.mock-task.done{text-decoration:line-through}.mock-task.done:before{background:var(--accent);border-color:var(--accent)}.mock-edge-label{position:absolute;font-size:10px;padding:2px 9px;background:var(--surface-glass);border:1px solid var(--border);border-radius:999px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.landing h2{font-size:clamp(28px,3.4vw,38px);letter-spacing:-.03em;text-align:center}.section-sub{text-align:center;color:var(--text-muted);margin-top:10px;font-size:16px}.features{padding:72px 0}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px;margin-top:44px}.feature-card{background:var(--surface-glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--border);border-radius:18px;padding:26px;transition:border-color .25s,box-shadow .25s,transform .25s}.feature-card:hover{border-color:var(--accent);box-shadow:var(--shadow-lg);transform:translateY(-3px)}.feature-icon{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;background:var(--accent-grad);color:var(--accent-text);box-shadow:0 4px 14px #7c3aed59;margin-bottom:16px}.feature-card h3,.step-card h3{font-size:16px;margin-bottom:8px}.feature-card p,.step-card p{font-size:13.5px;line-height:1.6;color:var(--text-muted)}.steps{padding:40px 0 80px}.steps-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-top:44px}.step-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:30px 26px 26px;text-align:center}.step-card .feature-icon{margin:0 auto 14px}.step-num{position:absolute;top:14px;left:18px;font-size:28px;font-weight:700;letter-spacing:-.03em;color:var(--accent);opacity:.35}.contact{padding:20px 0 90px}.contact-card{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;background:var(--surface-glass);-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4);border:1px solid var(--accent);border-radius:26px;padding:56px 40px;box-shadow:var(--glow)}.contact-card p{color:var(--text-muted);max-width:520px;line-height:1.65}.contact-card .btn{margin-top:8px}.landing-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;max-width:1120px;margin:0 auto;padding:26px 28px;border-top:1px solid var(--border);font-size:13px}.landing-footer a{color:var(--accent);text-decoration:none}.landing-footer a:hover{text-decoration:underline}.back-link{align-self:center;margin-top:4px}@media (max-width: 900px){.hero{grid-template-columns:1fr;padding-top:56px;min-height:0}.landing-links{display:none}.landing-nav{padding:12px 18px}.landing main{padding:0 18px}.contact-card{padding:36px 22px}}.mobile-only{display:none}.mobile-topbar{position:fixed;top:0;left:0;right:0;z-index:20;align-items:center;justify-content:space-between;padding:10px 14px;padding-top:calc(10px + env(safe-area-inset-top));background:var(--surface-glass);-webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);border-bottom:1px solid var(--border)}.burger-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:21}.burger-menu{position:fixed;z-index:22;top:calc(56px + env(safe-area-inset-top));right:10px;min-width:220px;background:var(--surface-glass);-webkit-backdrop-filter:blur(20px) saturate(1.4);backdrop-filter:blur(20px) saturate(1.4);border:1px solid var(--border);border-radius:14px;padding:6px;box-shadow:var(--shadow-lg);flex-direction:column;animation:modal-in .14s ease-out}.burger-menu button{display:flex;align-items:center;gap:10px;background:transparent;border:none;color:var(--text);padding:12px 13px;border-radius:10px;font-size:14px;text-align:left;transition:background .12s}.burger-menu button:hover{background:var(--accent-soft)}.fab-stack{position:fixed;z-index:20;right:14px;bottom:calc(18px + env(safe-area-inset-bottom));flex-direction:column;gap:12px}.fab{position:relative;width:54px;height:54px;border-radius:18px;display:flex;align-items:center;justify-content:center;background:var(--surface-glass);-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4);border:1px solid var(--border);color:var(--text);box-shadow:var(--shadow-lg);transition:transform .15s,box-shadow .15s}.fab:active{transform:scale(.94)}.fab.primary{background:var(--accent-grad);color:var(--accent-text);border-color:transparent;box-shadow:0 4px 18px #7c3aed80}.fab .count-badge{top:-5px;right:-5px}@media (max-width: 1115px){.toolbar.desktop-only{display:none}.mobile-topbar,.fab-stack,.burger-backdrop,.burger-menu{display:flex}.mobile-only.burger-backdrop{display:block}.react-flow__minimap{display:none}.todo-panel{width:100vw;min-width:0;border-left:none}.panel-header{flex-wrap:wrap;padding:14px}.title-input{flex:1 1 100%;order:-1}.panel-body{padding:14px}.panel-footer{padding:12px 14px}.meta-edit-row{grid-template-columns:1fr 1fr}.meta-edit-row .preview-toggle{grid-column:1}.placement-banner{top:68px;width:calc(100vw - 20px);flex-wrap:wrap;justify-content:center;text-align:center;font-size:12px;padding:8px 10px}.context-menu{min-width:210px;max-width:calc(100vw - 20px)}.modal{padding:18px;gap:12px}.modal.wide{width:100%}.hero{padding:40px 0;gap:28px}.hero-text p{font-size:15px}.btn.large{padding:11px 16px;font-size:14px}.features,.steps{padding:44px 0}.demo-wrap{border-radius:16px}}@media (min-width: 761px) and (max-width: 1115px){.todo-panel{width:min(48vw,560px);min-width:380px;border-left:1px solid var(--border)}.drawer{width:min(370px,100vw)}.react-flow__minimap{display:block}}.demo-wrap{position:relative;max-width:980px;margin:44px auto 0;aspect-ratio:880 / 430;border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow-lg);overflow:hidden;background:var(--surface);background-image:radial-gradient(var(--border-strong) 1px,transparent 1px);background-size:22px 22px}.demo-stage{position:absolute;top:0;left:0;width:880px;height:430px;transform-origin:top left}.demo-scene{position:absolute;top:0;right:0;bottom:0;left:0;animation:demo-scene 14s linear infinite}@keyframes demo-scene{0%,93%{opacity:1}98.5%,to{opacity:0}}.demo-el,.demo-stage .todo-node{position:absolute}.demo-group{left:40px;top:52px;width:410px;height:330px;border-color:var(--accent);background:var(--accent-soft);animation:demo-group 14s linear infinite}.demo-group .group-header{background:var(--accent-soft)}@keyframes demo-group{0%,33.9%{opacity:0;transform:scale(.985)}35%,to{opacity:1;transform:scale(1)}}.demo-band{left:40px;top:52px;width:0;height:0;opacity:0;animation:demo-band 14s linear infinite}@keyframes demo-band{0%,21.9%{width:0;height:0;opacity:0}22%{width:0;height:0;opacity:1}33%{width:410px;height:330px;opacity:1}35%,to{width:410px;height:330px;opacity:0}}.demo-a{left:70px;top:100px;animation:demo-a 14s linear infinite}@keyframes demo-a{0%,6.9%{opacity:0;transform:scale(.7)}7.6%{opacity:1;transform:scale(1.04)}8.2%,27%{transform:scale(1);box-shadow:var(--shadow-sm)}29%,34%{box-shadow:var(--glow)}36%,to{opacity:1;transform:scale(1);box-shadow:var(--shadow-sm)}}.demo-b{left:150px;top:235px;animation:demo-b 14s linear infinite}@keyframes demo-b{0%,14.9%{opacity:0;transform:scale(.7)}15.6%{opacity:1;transform:scale(1.04)}16.2%,27%{transform:scale(1);box-shadow:var(--shadow-sm)}29%,34%{box-shadow:var(--glow)}36%,to{opacity:1;transform:scale(1);box-shadow:var(--shadow-sm)}}.demo-c{left:600px;top:165px;animation:demo-c 14s linear infinite}@keyframes demo-c{0%,42.9%{opacity:0;transform:scale(.7)}43.6%{opacity:1;transform:scale(1.04)}44.2%,to{opacity:1;transform:scale(1)}}.demo-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.demo-edge{stroke:var(--accent);stroke-width:1.8;stroke-dasharray:1;stroke-dashoffset:0;animation:demo-edge 14s linear infinite}@keyframes demo-edge{0%,52.9%{stroke-dashoffset:1}61%,to{stroke-dashoffset:0}}.demo-conn-label{left:455px;top:228px;animation:demo-conn-label 14s linear infinite}@keyframes demo-conn-label{0%,61.9%{opacity:0;transform:translateY(5px)}63.5%,to{opacity:1;transform:translateY(0)}}.demo-task{display:flex;align-items:center;gap:7px;font-size:12px;margin-top:4px;color:var(--text)}.demo-box{width:12px;height:12px;flex-shrink:0;border:1.5px solid var(--border-strong);border-radius:4px;background:transparent}.demo-task span{position:relative}.demo-task span:after{content:"";position:absolute;left:-1px;right:-1px;top:50%;height:1.5px;background:var(--text-muted);transform:scaleX(0);transform-origin:left}.demo-task.t1 .demo-box,.demo-task.t2 .demo-box{background:var(--accent);border-color:var(--accent)}.demo-task.t1 span:after,.demo-task.t2 span:after{transform:scaleX(1)}.demo-task.t1 span,.demo-task.t2 span{color:var(--text-muted)}.demo-task.t1 .demo-box{animation:demo-check1 14s linear infinite}.demo-task.t1 span{animation:demo-fade1 14s linear infinite}.demo-task.t1 span:after{animation:demo-strike1 14s linear infinite}.demo-task.t2 .demo-box{animation:demo-check2 14s linear infinite}.demo-task.t2 span{animation:demo-fade2 14s linear infinite}.demo-task.t2 span:after{animation:demo-strike2 14s linear infinite}@keyframes demo-check1{0%,69.9%{background:transparent;border-color:var(--border-strong)}70.5%,to{background:var(--accent);border-color:var(--accent)}}@keyframes demo-strike1{0%,69.9%{transform:scaleX(0)}71.5%,to{transform:scaleX(1)}}@keyframes demo-fade1{0%,69.9%{color:var(--text)}71.5%,to{color:var(--text-muted)}}@keyframes demo-check2{0%,75.4%{background:transparent;border-color:var(--border-strong)}76%,to{background:var(--accent);border-color:var(--accent)}}@keyframes demo-strike2{0%,75.4%{transform:scaleX(0)}77%,to{transform:scaleX(1)}}@keyframes demo-fade2{0%,75.4%{color:var(--text)}77%,to{color:var(--text-muted)}}.demo-cursor{position:absolute;left:0;top:0;opacity:0;color:var(--text);filter:drop-shadow(0 2px 5px rgba(0,0,0,.4));animation:demo-cursor 14s linear infinite;z-index:5}.demo-cursor svg{fill:var(--surface);display:block;margin:-3px 0 0 -2px}.demo-ripple{position:absolute;left:-11px;top:-11px;width:26px;height:26px;border:2px solid var(--accent);border-radius:50%;opacity:0;transform:scale(.3);animation:demo-ripple 14s linear infinite}@keyframes demo-cursor{0%{transform:translate(820px,60px);opacity:1}6%,8%{transform:translate(180px,145px);opacity:1}14%,16%{transform:translate(260px,285px);opacity:1}22%{transform:translate(40px,52px);opacity:1}33%,36%{transform:translate(450px,382px);opacity:1}42%,44%{transform:translate(710px,205px);opacity:1}52%{transform:translate(372px,272px);opacity:1}61%,63%{transform:translate(598px,215px);opacity:1}68%,71%{transform:translate(89px,152px);opacity:1}74%,77%{transform:translate(89px,174px);opacity:1}85%{transform:translate(780px,390px);opacity:1}to{transform:translate(820px,60px);opacity:1}}@keyframes demo-ripple{0%,6.8%{opacity:0;transform:scale(.3)}7%{opacity:.75;transform:scale(.5)}9%{opacity:0;transform:scale(1.9)}14.8%{opacity:0;transform:scale(.3)}15%{opacity:.75;transform:scale(.5)}17%{opacity:0;transform:scale(1.9)}42.8%{opacity:0;transform:scale(.3)}43%{opacity:.75;transform:scale(.5)}45%{opacity:0;transform:scale(1.9)}69.8%{opacity:0;transform:scale(.3)}70%{opacity:.75;transform:scale(.5)}72%{opacity:0;transform:scale(1.9)}75.3%{opacity:0;transform:scale(.3)}75.5%{opacity:.75;transform:scale(.5)}77.5%{opacity:0;transform:scale(1.9)}to{opacity:0;transform:scale(.3)}}.collab-demo{aspect-ratio:880 / 380}.collab-stage{width:880px;height:380px;animation:demo-scene 12s linear infinite}.collab-points{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-top:40px}.cd-group{position:absolute;left:60px;top:40px;width:460px;height:300px;border-color:var(--accent);background:var(--accent-soft);animation:cd-group 12s linear infinite}.cd-group .group-header{background:var(--accent-soft)}@keyframes cd-group{0%,58%{box-shadow:none}63%,74%{box-shadow:var(--glow)}80%,to{box-shadow:none}}.cd-block-a{position:absolute;left:100px;top:120px}.cd-block-b{position:absolute;left:270px;top:230px;z-index:2;animation:cd-block-b 12s linear infinite}@keyframes cd-block-b{0%,55%{transform:translate(330px,-90px);box-shadow:var(--shadow-sm)}58%{box-shadow:var(--glow)}72%{transform:translate(0);box-shadow:var(--glow)}78%,to{transform:translate(0);box-shadow:var(--shadow-sm)}}.cd-b-mark{animation:cd-b-mark 12s linear infinite}@keyframes cd-b-mark{0%,73%{opacity:0}76%,to{opacity:1}}.demo-task.cd-t1 .demo-box{background:var(--accent);border-color:var(--accent);animation:cd-check 12s linear infinite}.demo-task.cd-t1 span{color:var(--text-muted);animation:cd-fade 12s linear infinite}.demo-task.cd-t1 span:after{transform:scaleX(1);animation:cd-strike 12s linear infinite}@keyframes cd-check{0%,17.5%{background:transparent;border-color:var(--border-strong)}18.5%,to{background:var(--accent);border-color:var(--accent)}}@keyframes cd-strike{0%,17.5%{transform:scaleX(0)}20%,to{transform:scaleX(1)}}@keyframes cd-fade{0%,17.5%{color:var(--text)}20%,to{color:var(--text-muted)}}.cd-cursor{position:absolute;left:0;top:0;z-index:5;pointer-events:none;opacity:0;filter:drop-shadow(0 2px 5px rgba(0,0,0,.4))}.cd-cursor svg{fill:var(--surface);display:block}.cd-cursor .live-cursor-label{top:20px;left:13px}.cd-cursor-partner{color:#f472b6;animation:cd-cursor-partner 12s linear infinite}.cd-cursor-partner .live-cursor-label{background:#f472b6}.cd-cursor-own{color:#8b5cf6;animation:cd-cursor-own 12s linear infinite}.cd-cursor-own .live-cursor-label{background:#8b5cf6}@keyframes cd-cursor-partner{0%{transform:translate(930px,300px);opacity:1}12%,18%{transform:translate(121px,171px);opacity:1}32%,55%{transform:translate(660px,165px);opacity:1}72%,76%{transform:translate(330px,255px);opacity:1}85%{transform:translate(470px,110px);opacity:1}to{transform:translate(930px,300px);opacity:1}}@keyframes cd-cursor-own{0%{transform:translate(250px,70px);opacity:1}35%{transform:translate(500px,95px);opacity:1}65%{transform:translate(600px,320px);opacity:1}to{transform:translate(250px,70px);opacity:1}}@media (prefers-reduced-motion: reduce){.demo-scene,.demo-scene *,.collab-stage,.collab-stage *{animation:none!important}.demo-cursor,.demo-band,.cd-cursor{display:none}}.menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.context-menu{position:fixed;z-index:41;min-width:230px;background:var(--surface-glass);-webkit-backdrop-filter:blur(20px) saturate(1.4);backdrop-filter:blur(20px) saturate(1.4);border:1px solid var(--border);border-radius:14px;padding:6px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:modal-in .14s ease-out}.context-menu button{display:flex;align-items:center;gap:9px;background:transparent;border:none;color:var(--text);padding:8px 11px;border-radius:9px;font-size:13px;text-align:left;transition:background .12s}.context-menu button:hover{background:var(--accent-soft)}.context-menu button.danger{color:var(--danger)}.context-menu button.danger:hover{background:#dc26261a}.context-menu kbd{margin-left:auto;font-family:inherit;font-size:11px;color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);border-radius:5px;padding:1px 6px}.menu-sep{height:1px;background:var(--border);margin:5px 8px}.ei-section{display:flex;flex-direction:column;gap:10px;align-items:flex-start;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.ei-section h3{margin-top:0!important}.token-row{display:flex;gap:8px}.token-row input{flex:1}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::-webkit-scrollbar-track{background:transparent}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #555;--xy-background-pattern-lines-color-default: #333;--xy-background-pattern-cross-color-default: #333;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}
