:root{--bg:#faf7f1;--bg-soft:#f1ece3;--ink:#14181f;--ink-2:#4a5566;--ink-3:#8a92a0;--line:#e5e2da;--line-2:#d6d1c5;--card:#fff;--accent:#4f8fe0;--accent-2:#2e6bc4;--accent-soft:#d6e5f9;--accent-tint:#ecf2fb;--done:#6ba47a;--done-soft:#deeedd;--done-text:#2f5a3c;--dot:#d5cfc0;--d0:#2e6bc4;--d0-soft:#d6e5f9;--d0-tint:#ecf2fb;--d1:#4f8fe0;--d1-soft:#d9e8f8;--d1-tint:#edf4fc;--d2:#6fa8dc;--d2-soft:#ddeaf6;--d2-tint:#eef4fb;--d3:#5ba7c7;--d3-soft:#d4e8f1;--d3-tint:#eaf4f8;--d4:#7b9cc4;--d4-soft:#dce5f0;--d4-tint:#ecf1f7;--shadow-sm:0 1px 2px #1a14100a, 0 1px 0 #1a141005;--shadow-md:0 4px 14px -4px #1a141014, 0 2px 4px -2px #1a14100d;--shadow-lg:0 16px 40px -12px #1a141024, 0 4px 12px -4px #1a14100f;--r-node:18px;--r-card:16px;--r-input:10px;--r-pill:999px;--r-icon:10px;--r-logo:7px;--node-w:220px;--node-pad-x:14px;--node-pad-y:12px;--col-gap:32px;--row-gap:130px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);height:100%;color:var(--ink);font-feature-settings:"ss01";-webkit-font-smoothing:antialiased;font-family:"Source Serif 4",Source Serif Pro,ui-serif,Georgia,serif}@media (max-width:767px){body{overflow-x:hidden}.authGrid{grid-template-columns:1fr!important}.authBrand{display:none!important}.authForm{min-height:100vh}.authForm .cl-rootBox{justify-content:center;width:100%;display:flex}.authForm .cl-cardBox,.authForm .cl-card{margin-left:auto!important;margin-right:auto!important}}body.canvas-layout{overflow:hidden}.mono{font-family:Geist Mono,ui-monospace,monospace}button{cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit}input,textarea{outline:none;font-family:inherit}a{color:inherit;text-decoration:none}.react-flow__attribution{display:none}.react-flow__pane{cursor:default!important}.topbar{-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);z-index:50;background:#faf7f1e0;align-items:center;gap:10px;height:52px;padding:0 14px;display:flex;position:sticky;top:0}.topbar-logo{letter-spacing:-.01em;color:var(--ink);flex-shrink:0;align-items:center;gap:8px;font-size:16px;font-weight:600;text-decoration:none;display:flex}.topbar-logo-mark{object-fit:contain;flex-shrink:0;width:52px;height:52px}.topbar-divider{background:var(--line-2);flex-shrink:0;width:1px;height:16px}.topbar-crumb{color:var(--ink-2);align-items:center;gap:4px;font-size:14px;display:flex;overflow:hidden}.topbar-crumb-item{cursor:pointer;color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;max-width:200px;transition:color .1s;overflow:hidden}.topbar-crumb-item:hover{color:var(--ink)}.topbar-crumb-item.active{color:var(--ink);font-weight:500}.topbar-crumb-sep{color:var(--line-2);-webkit-user-select:none;user-select:none}.topbar-spacer{flex:1}.topbar-icon-btn{border-radius:var(--r-icon);width:32px;height:32px;color:var(--ink-2);justify-content:center;align-items:center;transition:background .1s,color .1s;display:flex}.topbar-icon-btn:hover{background:var(--bg-soft);color:var(--ink)}.topbar-pill-btn{border-radius:var(--r-pill);align-items:center;gap:6px;height:30px;padding:0 12px;font-size:13px;font-weight:500;transition:background .1s,color .1s;display:flex}.topbar-pill-btn.primary{background:var(--accent);color:#fff}.topbar-pill-btn.primary:hover{background:var(--accent-2)}.topbar-pill-btn.ghost{background:var(--card);color:var(--ink-2);border:1px solid var(--line);box-shadow:var(--shadow-sm)}.topbar-pill-btn.ghost:hover{background:var(--bg-soft);color:var(--ink)}.view-toggle{background:var(--bg-soft);border-radius:var(--r-pill);gap:2px;padding:2px;display:flex}.view-toggle-btn{border-radius:var(--r-pill);height:26px;color:var(--ink-3);padding:0 12px;font-size:12px;font-weight:500;transition:all .15s}.view-toggle-btn.active{background:var(--card);color:var(--ink);box-shadow:var(--shadow-sm)}@keyframes pulse-ring{0%{box-shadow:0 0 0 0px var(--d-soft,#d9e8f8)}50%{box-shadow:0 0 0 6px var(--d-soft,#d9e8f8)}to{box-shadow:0 0 0 0px var(--d-soft,#d9e8f8)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(-6px)scale(.97)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}@keyframes panel-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes node-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
