:root{--bg: #0a0b0e;--bg-soft: #101218;--grid: rgba(255, 255, 255, .055);--surface: rgba(255, 255, 255, .032);--surface-2: rgba(255, 255, 255, .055);--surface-3: rgba(255, 255, 255, .085);--panel: rgba(21, 23, 29, .985);--line: rgba(255, 255, 255, .08);--line-2: rgba(255, 255, 255, .14);--line-3: rgba(255, 255, 255, .26);--text: #e9eaee;--text-dim: #9498a3;--text-faint: #5d616c;--accent: #7c6cff;--hi: #ff7a66;--lo: #4aa8a0;--node-w: 264px;--r: 14px;--jelly: cubic-bezier(.34, 1.42, .5, 1);--soft: cubic-bezier(.22, 1, .36, 1);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Segoe UI Variable Display,Segoe UI,ui-sans-serif,-apple-system,Inter,Roboto,sans-serif;font-size:13px;line-height:1.45;-webkit-font-smoothing:antialiased;overflow:hidden;overscroll-behavior:none}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}input{font:inherit;color:inherit}::selection{background:#7c6cff59}.app{display:flex;flex-direction:column;height:100%}.topbar{position:relative;z-index:30;display:flex;align-items:center;gap:10px;height:46px;padding:0 12px;border-bottom:1px solid var(--line);background:#0a0b0eb8;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);flex:none}.brand{display:flex;align-items:center;gap:8px;padding-right:6px;font-size:12.5px;font-weight:600;letter-spacing:.02em;color:var(--text-dim);-webkit-user-select:none;user-select:none}.brand-mark{width:15px;height:15px;border-radius:5px;border:1.5px solid var(--accent);position:relative}.brand-mark:after{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:2px;background:var(--accent);opacity:.55}.divider{width:1px;height:18px;background:var(--line)}.projects{display:flex;align-items:center;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none}.projects::-webkit-scrollbar{display:none}.chip{display:flex;align-items:center;gap:6px;height:27px;padding:0 10px;border-radius:8px;color:var(--text-dim);white-space:nowrap;transition:background .16s var(--soft),color .16s var(--soft)}.chip:hover{background:var(--surface-2);color:var(--text)}.chip.active{background:var(--surface-3);color:var(--text)}.chip input{background:none;border:0;outline:0;width:9ch;min-width:60px}.icon-btn{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;color:var(--text-faint);transition:background .16s var(--soft),color .16s var(--soft),transform .18s var(--jelly)}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn:active{transform:scale(.9)}.spacer{flex:1}.hint{font-size:11.5px;color:var(--text-faint);-webkit-user-select:none;user-select:none}.hint kbd{font:inherit;padding:1px 5px;border-radius:5px;border:1px solid var(--line);background:var(--surface);color:var(--text-dim)}.canvas-wrap{position:relative;flex:1;overflow:hidden;touch-action:none}.canvas-bg{position:absolute;top:0;right:0;bottom:0;left:0;background-color:var(--bg);background-image:radial-gradient(circle,var(--grid) 1px,transparent 1px)}.canvas-bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 70% 55% at 50% 42%,rgba(124,108,255,.09),transparent 70%);pointer-events:none}.canvas-surface{position:absolute;top:0;right:0;bottom:0;left:0;cursor:default}.canvas-surface.panning{cursor:grabbing}.canvas-surface.pan-ready{cursor:grab}.world{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}.world.animated{transition:transform .42s var(--soft)}.edge-layer{position:absolute;left:0;top:0;width:1px;height:1px;overflow:visible;pointer-events:none}.edge-hit{fill:none;stroke:transparent;stroke-width:18;pointer-events:stroke;cursor:pointer}.edge-path{fill:none;stroke:var(--line-3);stroke-width:1.5;transition:stroke .18s var(--soft),stroke-width .18s var(--soft)}.edge-arrow{fill:var(--line-3);transition:fill .18s var(--soft)}.edge-group:hover .edge-path,.edge-group.hot .edge-path{stroke:var(--accent);stroke-width:2}.edge-group:hover .edge-arrow,.edge-group.hot .edge-arrow{fill:var(--accent)}.edge-group.dim .edge-path{stroke:#ffffff1a}.edge-group.dim .edge-arrow{fill:#ffffff1a}.edge-draft .edge-path{stroke:var(--accent);stroke-width:2;stroke-dasharray:5 5;animation:dash .6s linear infinite}@keyframes dash{to{stroke-dashoffset:-20}}.edge-appear{animation:edgeIn .42s var(--soft)}@keyframes edgeIn{0%{opacity:0;stroke-dasharray:4 8}to{opacity:1}}.node{position:absolute;width:var(--node-w);border-radius:var(--r);border:1px solid var(--line);background:linear-gradient(180deg,#ffffff0b,#ffffff05);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 12px 34px -20px #000000e6;transition:border-color .18s var(--soft),box-shadow .22s var(--soft),transform .22s var(--jelly);animation:nodeIn .42s var(--jelly)}@keyframes nodeIn{0%{opacity:0;transform:scale(.82)}60%{opacity:1}to{opacity:1;transform:scale(1)}}.node.dragging{transition:none;z-index:5;box-shadow:0 26px 60px -22px #000}.node.selected{z-index:3;border-color:color-mix(in srgb,var(--node-accent) 65%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--node-accent) 35%,transparent),0 16px 40px -22px #000}.node.drop-target{border-color:color-mix(in srgb,var(--node-accent) 85%,transparent);box-shadow:0 0 0 2px color-mix(in srgb,var(--node-accent) 30%,transparent),0 0 34px -6px color-mix(in srgb,var(--node-accent) 30%,transparent);transform:scale(1.018)}.node.link-target{border-color:var(--accent);box-shadow:0 0 0 2px #7c6cff47}.node-head{display:flex;align-items:center;gap:8px;padding:11px 11px 9px;cursor:grab;-webkit-user-select:none;user-select:none}.node.dragging .node-head{cursor:grabbing}.node-dot{width:7px;height:7px;border-radius:50%;background:var(--node-accent);flex:none;box-shadow:0 0 10px -1px var(--node-accent)}.node-title{flex:1;min-width:0;font-size:11px;font-weight:650;letter-spacing:.085em;text-transform:uppercase;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.node-title-input{flex:1;min-width:0;background:none;border:0;outline:0;font-size:11px;font-weight:650;letter-spacing:.085em;text-transform:uppercase;padding:0}.node-count{font-size:10.5px;font-variant-numeric:tabular-nums;color:var(--text-faint);flex:none}.node-terminal{font-size:9.5px;letter-spacing:.06em;color:var(--text-faint);border:1px solid var(--line);border-radius:5px;padding:0 4px;flex:none}.node-body{padding:0 6px 6px;max-height:46vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}.node-body::-webkit-scrollbar{width:6px}.node-body::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:3px}.node-empty{padding:3px 8px 9px;font-size:11.5px;color:var(--text-faint);-webkit-user-select:none;user-select:none}.node-add{display:flex;align-items:center;gap:7px;width:calc(100% - 12px);margin:0 6px 7px;padding:6px 8px;border-radius:9px;font-size:12px;color:var(--text-faint);transition:background .16s var(--soft),color .16s var(--soft)}.node-add:hover{background:var(--surface-2);color:var(--text-dim)}.node:hover .node-add{color:var(--text-dim)}.port{position:absolute;width:11px;height:11px;border-radius:50%;background:var(--bg-soft);border:1.5px solid var(--line-3);opacity:0;transform:scale(.6);transition:opacity .18s var(--soft),transform .2s var(--jelly),background .16s var(--soft),border-color .16s var(--soft);cursor:crosshair;z-index:2}.node:hover .port,.node.selected .port,.linking .port{opacity:1;transform:scale(1)}.port:hover{background:var(--accent);border-color:var(--accent);transform:scale(1.35)}.port.top{top:-6px;left:50%;margin-left:-5.5px}.port.bottom{bottom:-6px;left:50%;margin-left:-5.5px}.port.left{left:-6px;top:50%;margin-top:-5.5px}.port.right{right:-6px;top:50%;margin-top:-5.5px}.task{display:flex;align-items:center;gap:8px;padding:6px 7px;border-radius:9px;cursor:grab;-webkit-user-select:none;user-select:none;transition:background .15s var(--soft),opacity .2s var(--soft);animation:taskIn .32s var(--jelly)}@keyframes taskIn{0%{opacity:0;transform:translateY(-5px) scale(.96)}to{opacity:1;transform:none}}.task:hover{background:var(--surface-2)}.task.selected{background:var(--surface-3);box-shadow:inset 0 0 0 1px var(--line-2)}.task.ghost{opacity:.25}.task.done .task-title{color:var(--text-faint);text-decoration:line-through;text-decoration-color:var(--text-faint)}.task-flying{position:fixed;margin:0;border-radius:9px;background:var(--panel);border:1px solid var(--line-2);box-shadow:0 18px 40px -18px #000;pointer-events:none;z-index:90;animation:none}.flight-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:90}.check{position:relative;flex:none;width:15px;height:15px;border-radius:5px;border:1.5px solid var(--line-2);background:transparent;transition:background .18s var(--soft),border-color .18s var(--soft),transform .24s var(--jelly)}.check:hover{border-color:var(--line-3)}.check:active{transform:scale(.82)}.check svg{position:absolute;top:1px;right:1px;bottom:1px;left:1px;opacity:0;transform:scale(.5);transition:opacity .18s var(--soft),transform .28s var(--jelly);stroke:#0a0b0e}.check.on{background:var(--lo);border-color:var(--lo)}.check.on svg{opacity:1;transform:scale(1)}.task-title{flex:1;min-width:0;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .2s var(--soft)}.task-input{flex:1;min-width:0;background:none;border:0;outline:0;padding:0;font-size:12.5px}.prio{flex:none;width:14px;height:14px;display:grid;place-items:center;border-radius:5px;transition:background .15s var(--soft),transform .22s var(--jelly)}.prio:hover{background:var(--surface-3)}.prio:active{transform:scale(.8)}.prio i{display:block;width:6px;height:6px;border-radius:50%}.prio.high i{background:var(--hi);box-shadow:0 0 8px -1px var(--hi)}.prio.normal i{background:var(--text-faint)}.prio.low i{background:transparent;border:1.5px solid var(--text-faint);opacity:.7}.drop-line{height:2px;margin:-1px 7px;border-radius:2px;background:var(--accent);box-shadow:0 0 10px -1px var(--accent);animation:dropIn .18s var(--soft)}@keyframes dropIn{0%{opacity:0;transform:scaleX(.4)}to{opacity:1;transform:none}}.pop{position:fixed;z-index:70;min-width:208px;padding:6px;border-radius:12px;border:1px solid var(--line-2);background:var(--panel);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 24px 60px -20px #000;animation:popIn .24s var(--jelly);transform-origin:var(--origin, 50% 0)}@keyframes popIn{0%{opacity:0;transform:scale(.9) translateY(-4px)}to{opacity:1;transform:none}}.pop-title{padding:6px 9px 8px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint)}.pop-item{display:flex;align-items:center;gap:9px;width:100%;padding:7px 9px;border-radius:8px;text-align:left;color:var(--text-dim);transition:background .14s var(--soft),color .14s var(--soft)}.pop-item:hover,.pop-item.active{background:var(--surface-3);color:var(--text)}.pop-item.danger:hover{background:#ff7a6624;color:var(--hi)}.pop-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pop-key{font-size:10.5px;color:var(--text-faint);border:1px solid var(--line);border-radius:4px;padding:0 4px;flex:none}.pop-sep{height:1px;margin:4px 6px;background:var(--line)}.swatches{display:flex;gap:5px;padding:7px 9px 5px}.swatch{width:15px;height:15px;border-radius:50%;border:1.5px solid transparent;transition:transform .2s var(--jelly),border-color .16s var(--soft)}.swatch:hover{transform:scale(1.22)}.swatch.on{border-color:var(--text)}.zoombar{position:absolute;right:14px;bottom:14px;z-index:20;display:flex;align-items:center;gap:2px;padding:4px;border-radius:11px;border:1px solid var(--line);background:#101218c7;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.zoom-val{min-width:46px;text-align:center;font-size:11.5px;font-variant-numeric:tabular-nums;color:var(--text-dim)}.empty-state{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:6px;text-align:center;pointer-events:none;color:var(--text-faint);animation:popIn .5s var(--soft)}.empty-state b{font-size:14px;font-weight:600;color:var(--text-dim)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#06070980;animation:fadeIn .2s var(--soft)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.help{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;background:#060709e0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fadeIn .2s var(--soft)}.help-card{width:min(560px,92vw);padding:20px 22px;border-radius:16px;border:1px solid var(--line-2);background:var(--panel);box-shadow:0 30px 80px -24px #000;animation:popIn .32s var(--jelly)}.help-card h2{margin:0 0 14px;font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim)}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 24px}.help-row{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:12.5px;color:var(--text-dim)}.help-row span{flex:1}.keys{display:flex;gap:3px;flex:none}.keys kbd{font:inherit;font-size:11px;padding:1px 6px;border-radius:5px;border:1px solid var(--line-2);background:var(--surface);color:var(--text);white-space:nowrap}.toast{position:absolute;left:50%;bottom:18px;transform:translate(-50%);z-index:25;padding:7px 13px;border-radius:10px;border:1px solid var(--line-2);background:var(--panel);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);font-size:12px;color:var(--text-dim);pointer-events:none;animation:toastIn .3s var(--jelly)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,10px) scale(.95)}to{opacity:1;transform:translate(-50%) scale(1)}}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:8px 10px;outline:none;transition:border-color .16s var(--soft),background .16s var(--soft)}input:focus,select:focus,textarea:focus{border-color:color-mix(in srgb,var(--accent) 60%,transparent);background:var(--surface-2)}input.bad{border-color:var(--hi)}input::placeholder{color:var(--text-faint)}select{cursor:pointer;padding-right:26px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-faint) 50%),linear-gradient(135deg,var(--text-faint) 50%,transparent 50%);background-position:right 12px center,right 7px center;background-size:5px 5px,5px 5px;background-repeat:no-repeat}select option{background:#16181e;color:var(--text)}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>span{font-size:11.5px;color:var(--text-dim);letter-spacing:.02em}.field>span i{font-style:normal;color:var(--text-faint)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:34px;padding:0 15px;border-radius:9px;border:1px solid var(--line-2);background:var(--surface-2);color:var(--text);font-size:12.5px;white-space:nowrap;transition:background .16s var(--soft),border-color .16s var(--soft),transform .18s var(--jelly),opacity .16s var(--soft)}.btn:hover:not(:disabled){background:var(--surface-3)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.42;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:transparent;color:#0b0b12;font-weight:600}.btn.primary:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 86%,white)}.btn.ghost{background:transparent;border-color:var(--line);color:var(--text-dim)}.btn.ghost:hover:not(:disabled){color:var(--text);border-color:var(--line-2);background:var(--surface)}.btn.danger,.btn.ghost.danger{color:var(--hi);border-color:color-mix(in srgb,var(--hi) 35%,transparent);background:color-mix(in srgb,var(--hi) 9%,transparent)}.btn.danger:hover:not(:disabled){background:color-mix(in srgb,var(--hi) 18%,transparent)}.btn.small{height:26px;padding:0 9px;font-size:11.5px;border-radius:7px}.btn.wide{width:100%}.link{color:var(--accent);border-bottom:1px solid color-mix(in srgb,var(--accent) 40%,transparent);padding:0;background:none}.link:hover{border-bottom-color:var(--accent)}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.icon-btn.danger:hover{color:var(--hi);background:color-mix(in srgb,var(--hi) 12%,transparent)}.spinner{display:inline-block;width:18px;height:18px;border-radius:50%;border:2px solid var(--line-2);border-top-color:var(--accent);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.splash{display:grid;place-items:center;height:100%;background:var(--bg)}.auth{position:relative;display:grid;place-items:center;height:100%;padding:20px;overflow:auto}.auth-bg{position:absolute;top:0;right:0;bottom:0;left:0;background-color:var(--bg);background-image:radial-gradient(circle,var(--grid) 1px,transparent 1px);background-size:26px 26px}.auth-bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 60% 50% at 50% 40%,rgba(124,108,255,.14),transparent 70%)}.auth-card{position:relative;width:min(380px,100%);display:flex;flex-direction:column;gap:13px;padding:26px 26px 22px;border-radius:18px;border:1px solid var(--line-2);background:var(--panel);box-shadow:0 40px 90px -30px #000;animation:popIn .42s var(--jelly)}.auth-brand{display:flex;align-items:center;gap:9px;font-size:15px;font-weight:650}.auth-lead{margin:-4px 0 4px;font-size:12.5px;line-height:1.5;color:var(--text-faint)}.auth-tabs{display:flex;gap:3px;padding:3px;border-radius:10px;background:var(--surface);border:1px solid var(--line);margin-bottom:3px}.auth-tabs button{flex:1;height:28px;border-radius:7px;font-size:12.5px;color:var(--text-dim);transition:background .18s var(--soft),color .18s var(--soft)}.auth-tabs button.on{background:var(--surface-3);color:var(--text)}.auth-error{padding:8px 11px;border-radius:9px;font-size:12px;color:var(--hi);background:color-mix(in srgb,var(--hi) 11%,transparent);border:1px solid color-mix(in srgb,var(--hi) 28%,transparent);animation:popIn .24s var(--jelly)}.ok-row{padding:8px 11px;border-radius:9px;font-size:12px;color:var(--lo);background:color-mix(in srgb,var(--lo) 11%,transparent);border:1px solid color-mix(in srgb,var(--lo) 28%,transparent);margin-bottom:10px}.auth-foot{text-align:center;font-size:12px;color:var(--text-faint)}.avatar{display:inline-grid;place-items:center;border-radius:50%;border:1px solid transparent;font-weight:650;letter-spacing:.02em;-webkit-user-select:none;user-select:none;flex:none;position:relative}.avatar.online:after{content:"";position:absolute;right:-1px;bottom:-1px;width:7px;height:7px;border-radius:50%;background:var(--lo);border:1.5px solid var(--bg)}.presence{display:flex;align-items:center;padding-right:4px}.presence>*+*{margin-left:-7px}.presence-more{margin-left:4px;font-size:11px;color:var(--text-faint)}.role-badge{flex:none;font-size:10px;letter-spacing:.04em;padding:2px 7px;border-radius:6px;border:1px solid var(--line);background:var(--surface);color:var(--text-dim);white-space:nowrap}.role-badge.owner{color:#e0a458;border-color:color-mix(in srgb,#e0a458 35%,transparent);background:color-mix(in srgb,#e0a458 12%,transparent)}.role-badge.admin{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 35%,transparent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.role-badge.editor{color:var(--lo);border-color:color-mix(in srgb,var(--lo) 30%,transparent);background:color-mix(in srgb,var(--lo) 10%,transparent)}.role-badge.subtle{background:none;border:0;color:var(--text-faint);padding:0 2px}.you{font-size:9.5px;letter-spacing:.04em;text-transform:uppercase;padding:1px 5px;border-radius:5px;background:var(--surface-3);color:var(--text-faint);margin-left:6px}.you.blocked{color:var(--hi);background:color-mix(in srgb,var(--hi) 14%,transparent)}.menu-anchor{position:relative;display:flex;align-items:center}.menu-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.menu{position:absolute;top:calc(100% + 7px);left:0;z-index:50;min-width:268px;max-width:340px;padding:6px;border-radius:12px;border:1px solid var(--line-2);background:var(--panel);box-shadow:0 24px 60px -20px #000;animation:popIn .22s var(--jelly)}.menu.right{left:auto;right:0}.menu-title{padding:6px 9px 7px;font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--text-faint)}.menu-list{max-height:46vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}.menu-head{display:flex;align-items:center;gap:10px;padding:8px 9px 4px}.menu-head b{display:block;font-size:13px;font-weight:600}.menu-head span{font-size:11.5px;color:var(--text-faint)}.pop-item.active{background:var(--surface-3);color:var(--text)}.pop-note{display:block;font-style:normal;font-size:10.5px;color:var(--text-faint);margin-top:1px}.project-btn{display:flex;align-items:center;gap:7px;height:29px;padding:0 10px;border-radius:9px;font-size:13px;font-weight:550;color:var(--text);max-width:260px;transition:background .16s var(--soft)}.project-btn:hover{background:var(--surface-2)}.project-btn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-btn svg{flex:none;color:var(--text-faint)}.project-rename{height:29px;padding:0 9px;font-size:13px;width:200px}.user-btn{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;transition:transform .2s var(--jelly)}.user-btn:hover{transform:scale(1.06)}.sync{width:7px;height:7px;border-radius:50%;flex:none;background:var(--text-faint);transition:background .25s var(--soft)}.sync.ok{background:var(--lo);box-shadow:0 0 8px -1px var(--lo)}.sync.off{background:#6b5b2a}.sync.busy{background:var(--accent);animation:pulse 1s ease-in-out infinite}@keyframes pulse{50%{opacity:.35}}.sheet-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;justify-content:center;align-items:flex-start;padding:42px 20px;overflow-y:auto;background:#060709b8;animation:fadeIn .2s var(--soft)}.sheet{width:min(620px,100%);border-radius:16px;border:1px solid var(--line-2);background:var(--panel);box-shadow:0 40px 90px -30px #000;animation:sheetIn .34s var(--jelly);margin:auto 0}.sheet.wide{width:min(1020px,100%)}@keyframes sheetIn{0%{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}.sheet-head{display:flex;align-items:flex-start;gap:12px;padding:18px 18px 14px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel);border-radius:16px 16px 0 0;z-index:2}.sheet-titles{flex:1;min-width:0}.sheet-head h2{margin:0;font-size:15px;font-weight:620}.sheet-sub{margin-top:3px;font-size:11.5px;color:var(--text-faint)}.sheet-body{padding:4px 18px 20px}.block{padding:16px 0;border-bottom:1px solid var(--line)}.block:last-child{border-bottom:0;padding-bottom:4px}.block h3{margin:0 0 11px;font-size:11px;font-weight:620;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint)}.hint-row{margin:8px 0 0;font-size:11.5px;color:var(--text-faint)}.empty-row{padding:14px 2px;font-size:12.5px;color:var(--text-faint)}.profile-head{display:flex;align-items:center;gap:16px;padding:18px 0 4px}.profile-name{font-size:19px;font-weight:620;letter-spacing:-.01em}.profile-meta{margin-top:3px;font-size:11.5px;color:var(--text-faint)}.profile-meta code,.user-sub code{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:10.5px;padding:1px 5px;border-radius:5px;background:var(--surface);border:1px solid var(--line)}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:8px;padding:14px 0 16px;border-bottom:1px solid var(--line)}.stat{padding:11px 12px;border-radius:11px;border:1px solid var(--line);background:var(--surface)}.stat-value{font-size:19px;font-weight:620;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.stat-label{margin-top:2px;font-size:11px;color:var(--text-faint)}.pw-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.mini-table{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:11px;overflow:hidden}.mini-row{display:flex;align-items:center;gap:12px;padding:9px 12px;font-size:12.5px;text-align:left;border-bottom:1px solid var(--line);background:none;color:var(--text);width:100%}.mini-row:last-child{border-bottom:0}.mini-row.clickable{cursor:pointer;transition:background .15s var(--soft)}.mini-row.clickable:hover{background:var(--surface)}.mini-main{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-dim{flex:none;font-size:11.5px;color:var(--text-faint);white-space:nowrap}.add-row{display:flex;gap:8px;align-items:stretch}.add-row input{flex:1;min-width:0}.suggest{position:relative;flex:1;min-width:0;display:flex}.suggest input{width:100%}.suggest-list{position:absolute;top:calc(100% + 5px);left:0;right:0;z-index:5;padding:5px;border-radius:10px;border:1px solid var(--line-2);background:var(--panel);box-shadow:0 20px 40px -18px #000;animation:popIn .2s var(--jelly)}.suggest-item{display:flex;align-items:baseline;gap:8px;width:100%;padding:7px 9px;border-radius:7px;text-align:left;font-size:12.5px;transition:background .14s var(--soft)}.suggest-item:hover{background:var(--surface-3)}.suggest-item span{font-size:11.5px;color:var(--text-faint)}.member-list{display:flex;flex-direction:column;gap:2px}.member{display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:11px;transition:background .15s var(--soft)}.member:hover{background:var(--surface)}.member-main{flex:1;min-width:0}.member-name{display:flex;align-items:center;font-size:13px;font-weight:550}.member-sub{font-size:11.5px;color:var(--text-faint);margin-top:1px}.member select{padding:5px 26px 5px 9px;font-size:11.5px;border-radius:7px}.role-legend{display:flex;flex-direction:column;gap:8px}.role-legend>div{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--text-faint)}.danger-zone .danger-row{display:flex;align-items:center;gap:16px;padding:12px 14px;border-radius:11px;border:1px solid color-mix(in srgb,var(--hi) 24%,transparent);background:color-mix(in srgb,var(--hi) 6%,transparent)}.danger-row>div{flex:1}.danger-row b{font-size:12.5px;font-weight:600}.danger-row p{margin:3px 0 0;font-size:11.5px;color:var(--text-faint)}.tabs{display:flex;gap:3px;padding:3px;margin:16px 0 4px;border-radius:10px;background:var(--surface);border:1px solid var(--line);width:fit-content}.tabs button{height:27px;padding:0 14px;border-radius:7px;font-size:12.5px;color:var(--text-dim);transition:background .18s var(--soft),color .18s var(--soft)}.tabs button.on{background:var(--surface-3);color:var(--text)}.user-table{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:11px;overflow:hidden;margin-top:12px}.user-row{display:grid;grid-template-columns:34px minmax(150px,1.4fr) 92px 68px 96px 132px auto;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--line);font-size:12.5px}.user-row:last-child{border-bottom:0}.user-row.head{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);background:var(--surface);padding:7px 12px}.user-row.blocked{background:color-mix(in srgb,var(--hi) 5%,transparent)}.user-id{min-width:0}.user-name{display:flex;align-items:center;gap:6px;font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-sub{font-size:11px;color:var(--text-faint);margin-top:1px}.cell{font-size:11.5px;color:var(--text-dim);font-variant-numeric:tabular-nums}.cell i{font-style:normal;color:var(--text-faint)}.user-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}@media (max-width: 900px){.user-row{grid-template-columns:34px 1fr;row-gap:6px}.user-row.head{display:none}.user-row .cell{grid-column:2}.user-actions{grid-column:1 / -1;justify-content:flex-start}.pw-grid,.choice-cards{grid-template-columns:1fr}}.choice-cards{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:14px 0}.choice-card{padding:12px 13px;border-radius:11px;border:1px solid var(--line);background:var(--surface);text-align:left;transition:border-color .16s var(--soft),background .16s var(--soft)}.choice-card:hover{background:var(--surface-2)}.choice-card.on{border-color:color-mix(in srgb,var(--accent) 60%,transparent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.choice-card b{display:block;font-size:12.5px;font-weight:600;margin-bottom:3px}.choice-card span{font-size:11.5px;color:var(--text-faint);line-height:1.45}.no-project{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:9px;text-align:center;padding:0 20px;animation:popIn .5s var(--soft)}.no-project b{font-size:16px;font-weight:620}.no-project p{margin:0 0 6px;max-width:360px;font-size:12.5px;line-height:1.5;color:var(--text-faint)}.toast.global{position:fixed;left:50%;bottom:22px;z-index:95;pointer-events:auto;cursor:pointer;max-width:min(460px,90vw)}.toast.global.error{border-color:color-mix(in srgb,var(--hi) 40%,transparent);color:var(--hi)}.toast.global.info{border-color:color-mix(in srgb,var(--lo) 40%,transparent);color:var(--text)}.brand-logo{display:block;width:auto;flex:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;opacity:.94}.auth-card .brand-logo{margin:0 auto 2px}.auth-hint{margin-top:-4px;padding:8px 11px;border-radius:9px;font-size:12px;line-height:1.45;color:var(--text-dim);background:color-mix(in srgb,var(--accent) 10%,transparent);border:1px solid color-mix(in srgb,var(--accent) 28%,transparent)}.invite-row{display:flex;gap:8px}.invite-url{flex:1;min-width:0;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:12px;color:var(--text-dim);background:var(--surface)}.invite-url:focus{color:var(--text)}.invite-meta{display:flex;align-items:center;gap:7px;margin-top:10px;font-size:11.5px;color:var(--text-faint);flex-wrap:wrap}.invite-actions{display:flex;gap:7px;margin-top:12px;flex-wrap:wrap}.invite-actions select{padding:6px 26px 6px 10px;font-size:12px}.join-project{color:var(--text);font-weight:620}.join-role{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:11px;border:1px solid var(--line);background:var(--surface);font-size:12px;color:var(--text-faint)}.topbar{height:calc(46px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px)}.zoombar{bottom:calc(14px + env(safe-area-inset-bottom,0px));right:calc(14px + env(safe-area-inset-right,0px))}.toast.global{bottom:calc(22px + env(safe-area-inset-bottom,0px))}.auth,.sheet-scrim{padding-top:calc(20px + env(safe-area-inset-top,0px));padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))}@media (max-width: 620px){.topbar{gap:6px;padding-left:8px;padding-right:8px}.topbar .divider,.topbar .sync{display:none}.project-btn{max-width:42vw}.presence{display:none}.sheet-scrim{padding-left:10px;padding-right:10px}.sheet-body{padding-left:14px;padding-right:14px}.sheet-head{padding:14px 14px 12px}.invite-row,.add-row{flex-wrap:wrap}.invite-row .btn,.add-row .btn{flex:1}.stat-row{grid-template-columns:repeat(auto-fit,minmax(96px,1fr))}.mini-row{flex-wrap:wrap;gap:6px 10px}.mini-main{flex-basis:100%}.help-grid{grid-template-columns:1fr}}@media (pointer: coarse){.check{width:19px;height:19px}.prio{width:20px;height:20px}.task{padding:8px 7px}.port{width:15px;height:15px}.port.top{top:-8px;margin-left:-7.5px}.port.bottom{bottom:-8px;margin-left:-7.5px}.port.left{left:-8px;margin-top:-7.5px}.port.right{right:-8px;margin-top:-7.5px}.node.selected .port{opacity:1;transform:scale(1)}}
