@import "https://fonts.googleapis.com/css2?family=Manrope:wght@200;300;400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--canvas:oklch(16.5% .004 60);--bg:oklch(19.5% .004 60);--surface:oklch(22.5% .005 60);--surface-2:oklch(26.5% .006 60);--hover:oklch(30.5% .007 60);--line:oklch(30.5% .005 60/.6);--line-soft:oklch(30.5% .005 60/.25);--ink:oklch(94% .008 85);--ink-2:oklch(78% .008 85);--ink-3:oklch(58% .008 85);--ink-4:oklch(42% .008 85);--accent:oklch(80% .14 68);--accent-2:oklch(85% .12 68);--accent-dim:oklch(80% .14 68/.12);--accent-ink:oklch(18% .02 60);--danger:oklch(65% .2 25);--c1:oklch(75% .14 30);--c2:oklch(80% .14 140);--c3:oklch(75% .14 220);--c4:oklch(78% .14 300);--c5:oklch(82% .14 90);--font-sans:"Manrope", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, Menlo, monospace;--display-weight:200;--display-tracking:-.03em;--ease:cubic-bezier(.2, .6, .1, 1);--fast:.12s;--mid:.22s;--slow:.4s;--toolbar-width:48px;--status-height:32px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);width:100%;height:100%;color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:13px;font-weight:400;line-height:1.4;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}a{color:inherit;text-decoration:none}input,textarea{font:inherit;color:inherit;background:0 0;border:none;outline:none}svg{display:block}.mono{font-family:var(--font-mono);font-feature-settings:"tnum", "zero"}body.app-root{background:var(--canvas);position:fixed;inset:0;overflow:hidden}#canvas-wrapper{cursor:default;background:var(--canvas);position:absolute;inset:0;overflow:hidden}#canvas-wrapper.panning{cursor:grab}#canvas-wrapper.panning:active{cursor:grabbing}#canvas-wrapper.crosshair{cursor:crosshair}#canvas-wrapper.text-cursor{cursor:text}.tool-btn{width:36px;height:36px;color:var(--ink-3);cursor:pointer;transition:background var(--fast) var(--ease), color var(--fast) var(--ease);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:flex}.tool-btn:hover{background:var(--hover);color:var(--ink)}.tool-btn.active{background:var(--accent);color:var(--accent-ink)}.tool-btn svg{stroke:currentColor;fill:none;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.toolbar-divider{background:var(--line);width:24px;height:1px;margin:4px 0}.tool-options{left:calc(var(--toolbar-width) + 6px);background:var(--surface);border:1px solid var(--line);z-index:20;border-radius:8px;gap:4px;padding:6px;display:none;position:absolute;top:8px;box-shadow:0 4px 16px #00000080}.tool-options.visible{display:flex}.tool-options .option-btn{color:var(--ink-3);cursor:pointer;white-space:nowrap;transition:background var(--fast) var(--ease), color var(--fast) var(--ease);background:0 0;border:none;border-radius:4px;padding:4px 10px;font-size:12px}.tool-options .option-btn:hover{background:var(--hover);color:var(--ink)}.tool-options .option-btn.active{background:var(--accent);color:var(--accent-ink)}.line-options{left:calc(var(--toolbar-width) + 6px);bottom:calc(var(--status-height) + 8px);background:var(--surface);border:1px solid var(--line);z-index:20;color:var(--ink-3);border-radius:8px;align-items:center;gap:6px;padding:6px 10px;font-size:12px;display:none;position:absolute;box-shadow:0 4px 16px #00000080}.line-options.visible{display:flex}.line-options button{border:1px solid var(--line);background:var(--hover);color:var(--ink);cursor:pointer;transition:border-color var(--fast) var(--ease);border-radius:4px;padding:3px 8px;font-size:11px}.line-options button:hover{border-color:var(--accent)}.line-options button.toggled{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.drop-overlay{inset:0;left:var(--toolbar-width);bottom:var(--status-height);background:var(--accent-dim);border:2px dashed var(--accent);color:var(--accent);pointer-events:none;z-index:30;justify-content:center;align-items:center;font-size:16px;display:none;position:absolute}.remote-cursor{pointer-events:none;align-items:flex-start;gap:4px;transition:transform 80ms linear;display:flex;position:absolute}.remote-cursor .rc-svg{flex-shrink:0}.remote-cursor .rc-name{font-size:10px;font-weight:600;font-family:var(--font-sans);color:var(--accent-ink);white-space:nowrap;-webkit-user-select:none;user-select:none;border-radius:4px;margin-top:14px;padding:2px 6px}#status-connection{background:var(--ink-4);border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}#status-connection[data-status=connected]{animation:pulse-ring 2.4s var(--ease) infinite;background:oklch(75% .17 145)}#status-connection[data-status=connecting]{background:oklch(82% .17 90);animation:1.2s ease-in-out infinite pulse}#status-connection[data-status=disconnected]{background:var(--danger)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes pulse-ring{0%{box-shadow:0 0 oklch(75% .17 145/.4)}70%{box-shadow:0 0 0 5px oklch(75% .17 145/0)}to{box-shadow:0 0 oklch(75% .17 145/0)}}.top-chrome{z-index:50;pointer-events:none;justify-content:space-between;align-items:center;height:52px;padding:0 20px;display:flex;position:absolute;top:0;left:0;right:0}.top-chrome>*{pointer-events:auto}.crumb{color:var(--ink-3);align-items:center;gap:10px;font-size:12px;display:flex}.crumb .sep{opacity:.4}.crumb .title{color:var(--ink);font-weight:500}.crumb .back{width:26px;height:26px;color:var(--ink-3);transition:background var(--fast) var(--ease), color var(--fast) var(--ease);border-radius:5px;place-items:center;text-decoration:none;display:grid}.crumb .back svg{stroke:currentColor;fill:none;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}.crumb .back:hover{background:var(--hover);color:var(--ink)}.chrome-right{align-items:center;gap:10px;display:flex}.presence{border:1px solid var(--line-soft);-webkit-backdrop-filter:blur(12px);background:oklch(22% .005 60/.7);border-radius:999px;align-items:center;min-width:28px;min-height:28px;padding:3px;display:flex}.presence-avatar{background:var(--accent);width:22px;height:22px;color:var(--accent-ink);font-size:9px;font-weight:600;font-family:var(--font-sans);border:2px solid oklch(22% .005 60);border-radius:50%;place-items:center;margin-left:-7px;display:grid}.presence-avatar:first-child{margin-left:0}.share-btn{background:var(--accent);color:var(--accent-ink);cursor:pointer;transition:filter var(--fast) var(--ease);border:none;border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:500;display:flex}.share-btn:hover{filter:brightness(1.08)}.share-btn svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:12px;height:12px}.dock{z-index:60;border:1px solid var(--line-soft);-webkit-backdrop-filter:blur(14px)saturate(1.1);background:oklch(22% .005 60/.82);border-radius:999px;align-items:center;gap:2px;padding:5px;display:flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 18px 48px -16px #0009,0 0 0 1px oklch(15% 0 0/.4)}.tool{width:34px;height:34px;color:var(--ink-3);cursor:pointer;transition:background var(--fast) var(--ease), color var(--fast) var(--ease);background:0 0;border:none;border-radius:999px;place-items:center;display:grid;position:relative}.tool:hover{color:var(--ink);background:var(--hover)}.tool.active{color:var(--accent-ink);background:var(--accent)}.tool.active:hover{filter:brightness(1.05)}.tool svg{stroke:currentColor;fill:none;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px;display:block}.tool .kbd{background:var(--surface-2);border:1px solid var(--line);font-family:var(--font-mono);color:var(--ink-2);letter-spacing:.03em;opacity:0;pointer-events:none;white-space:nowrap;transition:opacity var(--fast) var(--ease), transform var(--fast) var(--ease);z-index:70;border-radius:4px;padding:3px 7px 4px;font-size:9.5px;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%)translateY(4px)}.tool:hover .kbd{opacity:1;transform:translate(-50%)translateY(0)}.dock-divider{background:var(--line);flex-shrink:0;width:1px;height:18px;margin:0 3px}.tool-opts{border:1px solid var(--line-soft);-webkit-backdrop-filter:blur(12px);opacity:0;pointer-events:none;transition:opacity var(--mid) var(--ease), transform var(--mid) var(--ease);white-space:nowrap;background:oklch(22% .005 60/.88);border-radius:999px;gap:2px;padding:4px;display:flex;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%)translateY(4px)}.tool-opts.visible{opacity:1;pointer-events:auto;transform:translate(-50%)translateY(0)}.opt-btn{color:var(--ink-3);cursor:pointer;transition:background var(--fast) var(--ease), color var(--fast) var(--ease);background:0 0;border:none;border-radius:999px;padding:5px 12px;font-size:11px}.opt-btn:hover{color:var(--ink);background:var(--hover)}.opt-btn.active{color:var(--accent-ink);background:var(--accent)}.status{color:var(--ink-4);font-size:10.5px;font-family:var(--font-mono);letter-spacing:.04em;opacity:0;transition:opacity var(--mid) var(--ease);z-index:55;pointer-events:none;align-items:center;gap:10px;padding:10px 16px 12px;display:flex;position:absolute;bottom:0;left:0}.status .sep{opacity:.4}body.app-root:hover .status{opacity:1}.status .conn{border-radius:50%;flex-shrink:0;width:6px;height:6px}.status .conn[data-status=connected]{animation:pulse-dot 2.4s var(--ease) infinite;background:oklch(75% .14 145)}.status .conn[data-status=connecting]{background:oklch(82% .17 90);animation:1.2s ease-in-out infinite pulse}.status .conn[data-status=disconnected]{background:var(--danger);opacity:.5}@keyframes pulse-dot{0%{box-shadow:0 0 oklch(75% .14 145/.5)}70%{box-shadow:0 0 0 6px oklch(75% .14 145/0)}to{box-shadow:0 0 oklch(75% .14 145/0)}}.zoom-ctl{border:1px solid var(--line-soft);-webkit-backdrop-filter:blur(10px);opacity:0;transition:opacity var(--mid) var(--ease);z-index:55;font-family:var(--font-mono);color:var(--ink-2);background:oklch(22% .005 60/.82);border-radius:999px;align-items:center;gap:1px;padding:3px;font-size:10.5px;display:flex;position:absolute;bottom:16px;right:16px}body.app-root:hover .zoom-ctl{opacity:1}.zoom-ctl button{width:22px;height:22px;color:var(--ink-3);cursor:pointer;transition:background var(--fast) var(--ease), color var(--fast) var(--ease);background:0 0;border:none;border-radius:999px;place-items:center;font-size:14px;display:grid}.zoom-ctl button:hover{background:var(--hover);color:var(--ink)}.zoom-ctl .zval{text-align:center;min-width:42px;padding:0 8px}.drop-overlay{border:1.5px dashed var(--accent);background:var(--accent-dim);pointer-events:none;z-index:80;border-radius:12px;justify-content:center;align-items:center;display:none;position:absolute;inset:12px}.drop-overlay.visible{display:flex}.drop-overlay .hint-body{background:var(--surface);border:1px solid var(--line);color:var(--ink);border-radius:999px;padding:12px 20px;font-size:12px;font-weight:500}@keyframes fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.top-chrome{animation:fade-up var(--slow) var(--ease) 0s both}.dock{animation:fade-up var(--slow) var(--ease) .12s both}.modal-veil{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:200;opacity:0;transition:opacity var(--mid) var(--ease);background:oklch(12% 0 0/.55);justify-content:center;align-items:center;display:none;position:fixed;inset:0}.modal-veil.visible{opacity:1;display:flex}.modal{background:var(--surface);border:1px solid var(--line);width:440px;transition:transform var(--mid) var(--ease);border-radius:10px;padding:22px;transform:translateY(6px);box-shadow:0 40px 80px -20px #000000b3}.modal-veil.visible .modal{transform:translateY(0)}.modal-header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.modal-header h2{font-size:14px;font-weight:500}.modal-close{width:26px;height:26px;color:var(--ink-3);transition:all var(--fast);border-radius:5px;place-items:center;font-size:13px;display:grid}.modal-close:hover{background:var(--hover);color:var(--ink)}.modal-sub{color:var(--ink-3);margin-bottom:18px;font-size:11.5px}.access-row{background:var(--bg);border-radius:8px;gap:2px;margin-bottom:18px;padding:4px;display:flex}.access-row button{color:var(--ink-3);transition:all var(--fast);border-radius:5px;flex:1;padding:8px;font-size:11.5px}.access-row button.active{background:var(--surface-2);color:var(--ink);box-shadow:0 1px 2px #0003}.access-desc{color:var(--ink-3);margin-bottom:16px;font-size:11px}.link-row{background:var(--bg);border:1px solid var(--line);border-radius:7px;align-items:center;gap:6px;margin-bottom:18px;padding:6px 6px 6px 12px;display:flex}.link-row .lnk{font-family:var(--font-mono);color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11px;overflow:hidden}.link-row .copy{background:var(--surface-2);border:1px solid var(--line);color:var(--ink);transition:all var(--fast);border-radius:5px;flex-shrink:0;padding:5px 10px;font-size:10.5px}.link-row .copy:hover{background:var(--hover)}.link-row .copy.copied{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.invite-row{gap:6px;margin-bottom:10px;display:flex}.invite-row input,.invite-row select{background:var(--bg);border:1px solid var(--line);color:var(--ink);font-size:12px;font-family:var(--font-sans);border-radius:6px;padding:7px 10px}.invite-row input{flex:1}.invite-row input::placeholder{color:var(--ink-4)}.invite-row select{color:var(--ink-2)}.invite-row .btn-invite{background:var(--accent);color:var(--accent-ink);transition:all var(--fast);border-radius:6px;flex-shrink:0;padding:7px 12px;font-size:11.5px;font-weight:500}.invite-row .btn-invite:hover{background:var(--accent-2)}.invite-status{color:var(--ink-3);min-height:16px;margin-bottom:14px;font-size:11px}.invite-status.ok{color:oklch(72% .14 155)}.invite-status.err{color:oklch(65% .18 25)}.members-section{border-top:1px solid var(--line-soft);padding-top:14px}.members-label{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-bottom:10px;font-size:10px;font-weight:600}.member-row{align-items:center;gap:10px;padding:6px 0;display:flex}.member-row .av{color:#1a1712;background:var(--accent);border-radius:50%;flex-shrink:0;place-items:center;width:24px;height:24px;font-size:9.5px;font-weight:600;display:grid;overflow:hidden}.member-row .av img{object-fit:cover;width:100%;height:100%}.member-row .name{color:var(--ink);flex:1;font-size:12px}.member-row .role{color:var(--ink-3);font-size:10px;font-family:var(--font-mono)}.member-row .member-role-select{background:var(--bg);border:1px solid var(--line);color:var(--ink-2);font-size:11px;font-family:var(--font-mono);border-radius:5px;padding:3px 6px}.member-row .member-remove{width:22px;height:22px;color:var(--ink-4);transition:all var(--fast);border-radius:4px;place-items:center;font-size:11px;display:grid}.member-row .member-remove:hover{background:var(--hover);color:var(--ink)}.members-empty{color:var(--ink-4);padding:4px 0;font-size:12px}.remote-cursor{pointer-events:none;will-change:transform;position:absolute;top:0;left:0}.rc-dot{background:var(--rc-color,var(--accent));border:2px solid var(--canvas);width:14px;height:14px;box-shadow:0 0 0 1.5px var(--rc-color,var(--accent)), 0 4px 12px -2px var(--rc-color,var(--accent));pointer-events:auto;cursor:default;border-radius:50%}.rc-name{white-space:nowrap;font-size:10.5px;font-weight:500;font-family:var(--font-sans);background:var(--rc-color,var(--accent));color:var(--accent-ink);opacity:0;transition:opacity var(--mid) var(--ease), transform var(--mid) var(--ease);pointer-events:none;border-radius:999px;padding:3px 8px;position:absolute;top:-4px;left:18px;transform:translate(-4px)}.remote-cursor.label-visible .rc-name{opacity:1;transform:translate(0)}
