@import"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg-primary: #faf9f7;--bg-secondary: #f5f3f0;--bg-card: #ffffff;--text-primary: #2d2a26;--text-secondary: #6b6660;--text-muted: #9a948d;--border-light: #e8e5e1;--border-medium: #d4d0cb;--accent: #7c6f5b;--accent-soft: #a89f8f;--shadow-soft: 0 2px 8px rgba(45, 42, 38, .06);--shadow-medium: 0 4px 20px rgba(45, 42, 38, .1);--shadow-lifted: 0 12px 40px rgba(45, 42, 38, .15);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;overflow:hidden;overscroll-behavior:none;overscroll-behavior-x:none}body{font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{height:100%;display:flex;flex-direction:column;-webkit-user-select:none;user-select:none;position:relative}.app-header{position:absolute;top:8px;left:100px;z-index:210;display:flex;align-items:center;gap:10px}.beta-label{padding:3px 8px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--accent);background:#3b82f61a;border:1px solid rgba(59,130,246,.2);border-radius:999px}.auth-status{position:absolute;top:14px;right:14px;z-index:220;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-md);background:#ffffffeb;border:1px solid var(--border-light);font-size:12px;color:var(--text-secondary)}.auth-status span{font-weight:600;color:var(--text-primary)}.auth-sync{font-weight:500;color:var(--text-muted);padding:3px 8px;border-radius:999px;background:var(--bg-secondary);border:1px solid var(--border-light)}.auth-button{border:none;border-radius:var(--radius-sm);padding:6px 10px;background:var(--text-primary);color:var(--bg-card);font-size:11px;cursor:pointer;font-family:inherit}.auth-button:hover{background:var(--accent)}kbd{display:inline-flex;align-items:center;justify-content:center;padding:3px 7px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:500;background:var(--bg-secondary);border:1px solid var(--border-medium);border-radius:5px;color:var(--text-secondary);box-shadow:0 1px 2px #0000000d}.canvas-picker{position:relative;z-index:200}.canvas-picker-button{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-md);font-size:13px;font-weight:600;color:var(--text-primary);cursor:pointer;font-family:inherit;transition:background .15s ease,border-color .15s ease}.canvas-picker-button:hover{background:var(--bg-secondary);border-color:var(--border-medium)}.canvas-picker-title{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-picker-chevron{transition:transform .15s ease;opacity:.6}.canvas-picker-chevron.open{transform:rotate(180deg)}.canvas-picker-dropdown{position:absolute;top:calc(100% + 6px);left:0;min-width:260px;max-width:320px;background:var(--bg-card);border:1px solid var(--border-medium);border-radius:var(--radius-md);box-shadow:0 8px 24px #0000001f;overflow:hidden}.canvas-picker-list{max-height:280px;overflow-y:auto;padding:6px}.canvas-picker-loading{padding:16px;text-align:center;color:var(--text-muted);font-size:12px}.canvas-picker-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:background .1s ease}.canvas-picker-item:hover{background:var(--bg-secondary)}.canvas-picker-item.active{background:var(--bg-tertiary)}.canvas-picker-item.editing{padding:6px}.canvas-picker-item-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.canvas-picker-item-title{font-size:13px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-picker-item-date{font-size:11px;color:var(--text-muted)}.canvas-picker-item-actions{display:flex;align-items:center;gap:2px;opacity:0;transition:opacity .1s ease}.canvas-picker-item:hover .canvas-picker-item-actions,.canvas-picker-item.active .canvas-picker-item-actions{opacity:1}.canvas-picker-check{color:var(--accent);margin-right:4px}.canvas-picker-action{display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:background .1s ease,color .1s ease}.canvas-picker-action:hover{background:var(--bg-secondary);color:var(--text-primary)}.canvas-picker-action-delete:hover{background:#ef44441a;color:#ef4444}.canvas-picker-edit-input{flex:1;padding:8px 10px;background:var(--bg-secondary);border:1px solid var(--accent);border-radius:var(--radius-sm);font-size:13px;font-family:inherit;color:var(--text-primary);outline:none}.canvas-picker-delete-confirm{display:flex;align-items:center;gap:8px;width:100%;font-size:12px;color:var(--text-secondary)}.canvas-picker-delete-confirm span{flex:1}.canvas-picker-confirm-yes,.canvas-picker-confirm-no{padding:4px 10px;border:none;border-radius:var(--radius-sm);font-size:11px;font-weight:500;cursor:pointer;font-family:inherit}.canvas-picker-confirm-yes{background:#ef4444;color:#fff}.canvas-picker-confirm-yes:hover{background:#dc2626}.canvas-picker-confirm-no{background:var(--bg-secondary);color:var(--text-secondary)}.canvas-picker-confirm-no:hover{background:var(--bg-tertiary)}.canvas-picker-divider{height:1px;background:var(--border-light);margin:4px 0}.canvas-picker-create{display:flex;align-items:center;gap:8px;width:100%;padding:12px 16px;background:transparent;border:none;font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;font-family:inherit;transition:background .1s ease,color .1s ease}.canvas-picker-create:hover{background:var(--bg-secondary);color:var(--text-primary)}.canvas-picker-create:disabled{opacity:.5;cursor:not-allowed}.canvas-picker-count{margin-left:auto;font-size:11px;color:var(--text-muted);background:var(--bg-secondary);padding:2px 6px;border-radius:999px}.canvas-picker-upgrade-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.canvas-picker-upgrade-modal{background:var(--bg-card);border-radius:var(--radius-lg);padding:24px;max-width:360px;text-align:center;box-shadow:0 16px 48px #0003}.canvas-picker-upgrade-modal h3{margin:0 0 12px;font-size:18px;font-weight:600;color:var(--text-primary)}.canvas-picker-upgrade-modal p{margin:0 0 20px;font-size:14px;color:var(--text-secondary);line-height:1.5}.canvas-picker-upgrade-actions{display:flex;justify-content:center}.canvas-picker-upgrade-close{padding:10px 20px;background:var(--text-primary);border:none;border-radius:var(--radius-md);font-size:13px;font-weight:500;color:var(--bg-card);cursor:pointer;font-family:inherit}.canvas-picker-upgrade-close:hover{background:var(--accent)}.app-menu{position:absolute;top:0;left:0;z-index:200;-webkit-user-select:none;user-select:none}.menu-logo{position:relative;padding:12px 18px;background:var(--bg-card);border:none;border-right:1px solid var(--border-light);border-bottom:1px solid var(--border-light);border-bottom-right-radius:var(--radius-md);font-size:15px;font-weight:700;color:var(--text-primary);cursor:pointer;transition:background .15s ease;font-family:inherit;letter-spacing:-.5px}.menu-logo:hover,.menu-logo.active{background:var(--bg-secondary)}.menu-logo-badge{position:absolute;bottom:0;right:-4px;width:10px;height:10px;border-radius:50%;background:#ef4444;box-shadow:0 0 0 2px var(--bg-card);animation:pulse 2s ease-in-out infinite;z-index:10}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}.menu-dropdown{position:absolute;top:100%;left:60px;min-width:180px;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-medium);padding:0;margin-top:2px}.menu-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 12px;background:none;border:none;font-size:13px;color:var(--text-primary);cursor:pointer;text-align:left;position:relative;transition:background .1s ease;gap:8px}.menu-item:hover,.menu-item.active{border-radius:var(--radius-md);background:var(--bg-secondary)}.menu-item.disabled{opacity:.4;pointer-events:none}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}.menu-item.has-submenu{padding-right:8px}.menu-item.has-notification{position:relative}.menu-item-badge{position:absolute;top:8px;right:12px;width:10px;height:10px;border-radius:50%;background:#ef4444;box-shadow:0 0 0 2px var(--bg-card);animation:pulse 2s ease-in-out infinite;z-index:10}.menu-item svg{flex-shrink:0;opacity:.7;color:var(--text-secondary)}.menu-item:hover svg{opacity:1;color:var(--text-primary)}.menu-item>span:first-of-type{flex:1;text-align:left}.menu-divider{height:1px;background:var(--border-light);margin:4px 0}.shortcut{font-size:11px;color:var(--text-muted);margin-left:24px}.submenu{position:absolute;top:-4px;left:100%;min-width:200px;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-medium);padding:4px 0;margin-left:2px}.toolbar{position:absolute;bottom:12px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:4px;padding:6px;background:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-medium);border:1px solid var(--border-light);z-index:100;-webkit-user-select:none;user-select:none}.toolbar-btn{width:40px;height:40px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.toolbar-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.toolbar-btn.active{background:var(--accent);color:#fff}.toolbar-btn.active:hover{background:var(--text-primary)}.canvas-container{flex:1;width:100%;height:100%;overflow:hidden;position:relative;background:radial-gradient(circle at 50% 50%,var(--bg-secondary) 0%,var(--bg-primary) 100%),repeating-linear-gradient(0deg,transparent,transparent 40px,var(--border-light) 40px,var(--border-light) 41px),repeating-linear-gradient(90deg,transparent,transparent 40px,var(--border-light) 40px,var(--border-light) 41px);background-size:100% 100%,41px 41px,41px 41px;cursor:default}.canvas-overlay{position:absolute;inset:0;pointer-events:none;transform-origin:top left}.canvas-overlay-item{position:absolute;pointer-events:auto;transform-origin:top left}.canvas-overlay-item .todo-task-checkbox,.canvas-overlay-item .todo-task-delete,.canvas-overlay-item .todo-add-task,.canvas-overlay-item .todo-task-input,.canvas-overlay-item .todo-title-input{transform:scale(calc(1 / var(--canvas-zoom, 1)));transform-origin:top left}.canvas-overlay-item,.canvas-webgl{transform:translateZ(0)}.bookmark-overlay,.comment-overlay,.free-text-overlay,.image-overlay,.todo-overlay,.welcome-overlay{background:transparent}.bookmark-overlay.dragging,.comment-overlay.dragging,.free-text-overlay.dragging,.image-overlay.dragging,.todo-overlay.dragging,.welcome-overlay.dragging{cursor:grabbing}.canvas-overlay-item textarea,.canvas-overlay-item input,.canvas-overlay-item button{pointer-events:auto}.canvas-overlay-item textarea,.canvas-overlay-item input,.canvas-overlay-item .free-text-display,.canvas-overlay-item .comment-display,.canvas-overlay-item .todo-content{transform:scale(calc(1 / var(--canvas-zoom, 1)));transform-origin:top left}.bookmark-overlay .drag-handle,.bookmark-overlay.video-playing,.bookmark-video-overlay{pointer-events:auto}.bookmark-video-overlay .card-image{width:100%;height:100%}.bookmark-video-overlay iframe{pointer-events:auto}.canvas-container.panning{cursor:grabbing}.canvas-container.tool-text{cursor:text}.canvas-container.tool-comment{cursor:crosshair}.canvas-content{position:absolute;top:0;left:0;transform-origin:0 0;will-change:transform;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:geometricPrecision;-webkit-text-size-adjust:none;text-size-adjust:none}.canvas-webgl{position:absolute;inset:0;width:100%;height:100%}.selection-box{position:absolute;background:#dc985b1a;border:1px solid rgba(220,152,91,.5);border-radius:2px;pointer-events:none;z-index:1000}.bookmark-card{position:absolute;background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-light);box-shadow:var(--shadow-soft);overflow:hidden;cursor:grab;transition:box-shadow .2s ease,border-color .2s ease;display:flex;flex-direction:column;-webkit-user-select:none;user-select:none;min-width:0;box-sizing:border-box;-webkit-text-size-adjust:none;text-size-adjust:none}.bookmark-card:hover{box-shadow:var(--shadow-medium);border-color:var(--border-medium)}.bookmark-card.selected{border-color:#dc985b;box-shadow:var(--shadow-lifted),0 0 0 3px #dc985b26}.bookmark-card.dragging{cursor:grabbing;box-shadow:var(--shadow-lifted)}.delete-btn{position:absolute;top:10px;right:10px;width:28px;height:28px;border-radius:50%;border:none;background:var(--bg-card);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .2s ease;z-index:10;box-shadow:var(--shadow-soft)}.delete-btn svg{width:14px;height:14px}.bookmark-card:hover .delete-btn,.bookmark-card.selected .delete-btn,.comment-node:hover .delete-btn,.comment-node.selected .delete-btn,.todo-card:hover .delete-btn,.todo-card.selected .delete-btn,.image-node:hover .delete-btn,.image-node.selected .delete-btn{opacity:1}.delete-btn:hover{background:#fee2e2;color:#dc2626}.toggle-footer-btn{position:absolute;top:10px;left:10px;width:28px;height:28px;border-radius:50%;border:none;background:var(--bg-card);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .2s ease;z-index:10;box-shadow:var(--shadow-soft)}.toggle-footer-btn svg{width:14px;height:14px}.bookmark-card:hover .toggle-footer-btn{opacity:1}.toggle-footer-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.play-btn{position:absolute;top:10px;left:46px;width:28px;height:28px;border-radius:50%;border:none;background:var(--bg-card);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .2s ease;z-index:10;box-shadow:var(--shadow-soft)}.play-btn svg{width:14px;height:14px}.bookmark-card:hover .play-btn{opacity:1}.play-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.free-text{position:absolute;cursor:grab;padding:4px 8px;box-sizing:border-box;display:flex;flex-direction:column}.free-text.selected{outline:2px solid #dc985b;outline-offset:4px;border-radius:4px}.free-text.dragging{cursor:grabbing}.free-text textarea{flex:1;border:none;background:transparent;resize:none;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-weight:500;color:var(--text-primary);outline:none;overflow:auto;line-height:1.3;white-space:pre-wrap;word-wrap:break-word;width:100%;height:100%;padding:0;margin:0}.free-text textarea::placeholder{color:var(--text-muted)}.free-text-display{flex:1;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-weight:500;color:var(--text-primary);white-space:pre-wrap;word-wrap:break-word;line-height:1.3;overflow:hidden;width:100%;height:100%}.free-text-display .placeholder{color:var(--text-muted);font-style:italic}.comment-node{position:absolute;background:#fffbeb;border-radius:var(--radius-md);border:1px solid #fde68a;box-shadow:var(--shadow-soft);cursor:grab;transition:box-shadow .2s ease,border-color .2s ease;display:flex;flex-direction:column}.comment-node:hover{box-shadow:var(--shadow-medium);border-color:#fcd34d}.comment-node.selected{border-color:#dc985b;box-shadow:var(--shadow-lifted),0 0 0 3px #dc985b26}.comment-node.dragging{cursor:grabbing;box-shadow:var(--shadow-lifted)}.comment-tail{position:absolute;bottom:-8px;left:16px;width:16px;height:16px;background:#fffbeb;border-right:1px solid #fde68a;border-bottom:1px solid #fde68a;transform:rotate(45deg);z-index:-1}.comment-node.selected .comment-tail{border-color:#dc985b}.comment-content{flex:1;padding:14px 16px;overflow:hidden;display:flex}.comment-node textarea{width:100%;height:100%;border:none;background:transparent;resize:none;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;line-height:1.6;color:var(--text-primary);outline:none}.comment-node textarea::placeholder{color:#b45309;opacity:.5}.comment-display{width:100%;font-size:14px;line-height:1.6;color:var(--text-primary);white-space:pre-wrap;word-break:break-word;overflow:hidden}.comment-display .placeholder{color:#b45309;opacity:.5;font-style:italic}.card-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.card-image{width:100%;height:55%;min-height:80px;overflow:hidden;background:var(--bg-secondary);flex-shrink:0}.card-image.full-height{height:100%;min-height:100%}.card-image img{pointer-events:none;width:100%;height:100%;object-fit:cover}.card-image.card-video{position:relative;background:#000}.card-image.card-video iframe{width:100%;height:100%;border:none;pointer-events:auto}.bookmark-card.video-playing{position:relative;overflow:visible!important}.drag-handle{position:absolute;top:-55px;left:50%;transform:translate(-50%);width:44px;height:44px;border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border-light);display:flex;align-items:center;justify-content:center;cursor:grab;z-index:1000!important;opacity:1;transition:background .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease;pointer-events:auto!important;box-shadow:var(--shadow-medium);user-select:none;-webkit-user-select:none}.drag-handle:hover{background:var(--bg-secondary);border-color:var(--border-medium);box-shadow:var(--shadow-lifted);transform:translate(-50%) scale(1.05)}.drag-handle:active{cursor:grabbing;transform:translate(-50%) scale(.95)}.drag-handle svg{color:var(--text-secondary);width:20px;height:20px;pointer-events:none}.drag-handle:hover svg{color:var(--text-primary)}.bookmark-card.video-playing{position:relative}.bookmark-card.video-playing .card-image.card-video iframe{pointer-events:auto;position:relative;z-index:1}.bookmark-card.video-playing .drag-handle{position:absolute;z-index:10000!important}.card-info{padding:14px 16px;flex:1;display:flex;flex-direction:column;overflow:hidden}.card-header{display:flex;align-items:center;gap:10px;margin-bottom:6px}.favicon{width:20px;height:20px;border-radius:4px;flex-shrink:0}.card-title{font-size:14px;font-weight:600;color:var(--text-primary);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-description{font-size:12px;color:var(--text-secondary);line-height:1.5;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:8px;flex:1}.card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto}.card-url{font-size:11px;color:var(--text-muted);font-family:JetBrains Mono,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.goto-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;border:none;border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-secondary);font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .15s ease;flex-shrink:0}.goto-btn:hover{background:var(--accent-soft);color:var(--text-primary)}.goto-btn svg{flex-shrink:0}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.card-image.skeleton{position:relative;background:var(--bg-secondary);overflow:hidden}.skeleton-shimmer{position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shimmer 1.5s infinite}.skeleton-favicon{width:20px;height:20px;border-radius:4px;background:var(--border-light);flex-shrink:0}.skeleton-title{flex:1;height:16px;border-radius:4px;background:var(--border-light)}.skeleton-description{height:12px;border-radius:3px;background:var(--border-light);margin-bottom:6px}.skeleton-description.short{width:60%}.skeleton-url{height:11px;width:40%;border-radius:3px;background:var(--border-light);margin-top:auto}.image-node{position:absolute;background:var(--bg-card);border-radius:var(--radius-md);border:1px solid var(--border-light);box-shadow:var(--shadow-soft);cursor:grab;transition:box-shadow .2s ease,border-color .2s ease;overflow:hidden;display:flex;align-items:center;justify-content:center}.image-node:hover{box-shadow:var(--shadow-medium);border-color:var(--border-medium)}.image-node.selected{border-color:#dc985b;box-shadow:var(--shadow-lifted),0 0 0 3px #dc985b26}.image-node.dragging{cursor:grabbing;box-shadow:var(--shadow-lifted)}.image-node img{max-width:100%;max-height:100%;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}.image-loading{color:var(--text-muted);font-size:14px}.resize-handle{position:absolute;z-index:20}.resize-handle.n{top:-4px;left:10px;right:10px;height:8px;cursor:n-resize}.resize-handle.s{bottom:-4px;left:10px;right:10px;height:8px;cursor:s-resize}.resize-handle.e{right:-4px;top:10px;bottom:10px;width:8px;cursor:e-resize}.resize-handle.w{left:-4px;top:10px;bottom:10px;width:8px;cursor:w-resize}.resize-handle.ne{top:-4px;right:-4px;width:16px;height:16px;cursor:ne-resize}.resize-handle.nw{top:-4px;left:-4px;width:16px;height:16px;cursor:nw-resize}.resize-handle.se{bottom:-4px;right:-4px;width:16px;height:16px;cursor:se-resize}.resize-handle.sw{bottom:-4px;left:-4px;width:16px;height:16px;cursor:sw-resize}.canvas-controls{position:absolute;bottom:0;left:0;display:flex;align-items:center;gap:2px;padding:8px 12px;background:var(--bg-card);border:none;border-top:1px solid var(--border-light);border-right:1px solid var(--border-light);border-top-right-radius:var(--radius-md);z-index:50;-webkit-user-select:none;user-select:none}.canvas-controls button{width:28px;height:28px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.canvas-controls button:hover{background:var(--bg-secondary);color:var(--text-primary)}.zoom-level{min-width:44px;text-align:center;font-size:12px;font-weight:600;color:var(--text-primary);font-family:inherit}.empty-canvas-prompt{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:16px;padding:32px 48px;background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-medium);border:1px solid var(--border-light);z-index:40}.empty-canvas-prompt p{margin:0;font-size:16px;color:var(--text-muted)}.empty-canvas-prompt button{padding:10px 20px;border:none;border-radius:var(--radius-md);background:var(--accent-soft);color:var(--text-primary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.empty-canvas-prompt button:hover{background:var(--accent-medium)}.canvas-container.canvas-error{display:flex;align-items:center;justify-content:center}.canvas-container.canvas-error .empty-canvas-prompt{position:static;transform:none;max-width:420px;text-align:center}.toast-container{position:fixed;bottom:80px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:1000;pointer-events:none;align-items:center}.toast{padding:10px 20px;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-medium);font-size:13px;color:var(--text-primary);animation:toast-in .2s ease-out;width:fit-content;max-width:90vw;white-space:nowrap}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.welcome-card{position:absolute;width:280px;background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-light);box-shadow:var(--shadow-medium);padding:28px 32px;text-align:center;cursor:grab;transition:box-shadow .2s ease,border-color .2s ease}.welcome-card:hover{box-shadow:var(--shadow-lifted);border-color:var(--border-medium)}.welcome-card.dragging{cursor:grabbing;box-shadow:var(--shadow-lifted)}.welcome-card.shortcuts-card{width:540px}.welcome-card.shortcuts-card .tips-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;column-gap:24px}.welcome-card .dismiss-btn{position:absolute;top:12px;right:12px;width:28px;height:28px;border-radius:50%;border:none;background:var(--bg-secondary);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;opacity:0}.welcome-card:hover .dismiss-btn{opacity:1}.welcome-card .dismiss-btn:hover{background:var(--border-medium);color:var(--text-primary)}.welcome-icon{width:56px;height:56px;margin:0 auto 16px;background:var(--bg-secondary);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.welcome-icon svg{stroke:var(--accent)}.tips-icon{background:#eff6ff}.tips-icon svg{stroke:#3b82f6}.paste-icon{background:#f0fdf4}.paste-icon svg{stroke:#22c55e}.shortcuts-icon{background:#fef3c7}.shortcuts-icon svg{stroke:#f59e0b}.tip-icon{font-size:14px;width:20px;text-align:center;flex-shrink:0}.welcome-card h2{font-size:17px;font-weight:600;color:var(--text-primary);margin-bottom:12px}.welcome-card p{font-size:14px;color:var(--text-secondary);margin-bottom:14px;line-height:1.5}.welcome-tips{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;color:var(--text-muted);flex-wrap:wrap}.welcome-tips .dot{opacity:.5}.tips-list{display:flex;flex-direction:column;gap:10px;text-align:left}.tip-item{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--text-secondary)}.tip-item kbd{min-width:28px;text-align:center}.tip-action{font-size:11px;font-weight:500;color:var(--text-muted);text-transform:lowercase}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background:#7c6f5b33}.help-popover-container{position:absolute;bottom:0;right:0;display:flex;align-items:center;gap:2px;padding:8px 12px;background:var(--bg-card);border:none;border-top:1px solid var(--border-light);border-left:1px solid var(--border-light);border-top-left-radius:var(--radius-md);z-index:100;-webkit-user-select:none;user-select:none}.help-trigger{width:28px;height:28px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.help-trigger:hover{background:var(--bg-secondary);color:var(--text-primary)}.help-popover{position:absolute;bottom:44px;right:0;width:320px;max-height:600px;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-large);overflow:hidden;z-index:101;touch-action:pan-y;pointer-events:auto}.help-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border-light)}.help-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text-primary)}.help-close{width:28px;height:28px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all .15s ease}.help-close:hover{background:var(--bg-secondary);color:var(--text-primary)}.help-content{padding:12px;max-height:540px;overflow-y:auto;touch-action:pan-y;overscroll-behavior:contain}.help-category{margin-bottom:20px}.help-category:last-child{margin-bottom:0}.help-category-title{margin:0 0 12px;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.help-shortcuts{display:flex;flex-direction:column;gap:8px}.help-shortcut{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg-secondary);border-radius:var(--radius-sm);gap:12px}.help-keys{display:flex;align-items:center;gap:4px;flex-shrink:0}.help-key-separator{color:var(--text-muted);font-size:12px;margin:0 2px}.help-key{padding:4px 8px;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-sm);font-family:JetBrains Mono,monospace;font-size:11px;font-weight:500;color:var(--text-primary);min-width:24px;text-align:center;box-shadow:0 1px 2px #0000000d}.help-description{font-size:13px;color:var(--text-secondary);text-align:right;flex:1}.changelog-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px}.changelog-popover{position:relative;width:100%;max-width:600px;max-height:80vh;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-large);overflow:hidden;display:flex;flex-direction:column;touch-action:pan-y;pointer-events:auto}.changelog-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border-light);flex-shrink:0}.changelog-header h3{margin:0;font-size:18px;font-weight:600;color:var(--text-primary)}.changelog-close{width:32px;height:32px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease;flex-shrink:0}.changelog-close:hover{background:var(--bg-secondary);color:var(--text-primary)}.changelog-content{padding:24px;overflow-y:auto;flex:1;overscroll-behavior:contain}.sync-conflict-overlay{position:fixed;inset:0;background:#00000073;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:2100;display:flex;align-items:center;justify-content:center;padding:20px}.sync-conflict-modal{width:min(520px,92vw);background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-lifted);padding:24px;display:flex;flex-direction:column;gap:18px}.sync-conflict-header h3{margin:0 0 8px;font-size:18px;font-weight:600;color:var(--text-primary)}.sync-conflict-header p{margin:0;color:var(--text-secondary);font-size:14px;line-height:1.5}.sync-conflict-actions{display:flex;flex-direction:column;gap:10px}.sync-conflict-btn{border:1px solid var(--border-light);background:var(--bg-secondary);color:var(--text-primary);border-radius:var(--radius-md);padding:10px 14px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease}.sync-conflict-btn:hover{background:var(--accent-soft);border-color:var(--accent-soft)}.sync-conflict-btn.primary{background:var(--text-primary);color:var(--bg-card);border-color:var(--text-primary)}.sync-conflict-btn.primary:hover{background:var(--accent);border-color:var(--accent)}.sync-conflict-btn.ghost{background:transparent;color:var(--text-secondary)}.sync-conflict-btn.ghost:hover{background:var(--bg-secondary)}.changelog-entry{margin-bottom:32px}.changelog-entry:last-child{margin-bottom:0}.changelog-entry-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.changelog-version{font-size:16px;font-weight:600;color:var(--text-primary)}.changelog-date{font-size:13px;color:var(--text-muted);font-family:JetBrains Mono,monospace}.changelog-features{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.changelog-features li{font-size:14px;line-height:1.6;color:var(--text-secondary);padding-left:20px;position:relative}.changelog-features li:before{content:"•";position:absolute;left:0;color:var(--accent);font-weight:700}.todo-card{position:absolute;background:var(--bg-card);border-radius:var(--radius-md);border:1px solid var(--border-light);box-shadow:var(--shadow-soft);cursor:grab;transition:box-shadow .2s ease,border-color .2s ease;display:flex;flex-direction:column;overflow:hidden}.todo-card:hover{box-shadow:var(--shadow-medium);border-color:var(--border-medium)}.todo-card.selected{border-color:var(--accent);box-shadow:var(--shadow-lifted),0 0 0 3px #7c6f5b26}.todo-card.dragging{cursor:grabbing;box-shadow:var(--shadow-lifted)}.todo-content{flex:1;padding:16px;display:flex;flex-direction:column;gap:12px;overflow-y:auto;max-height:100%}.todo-title{font-size:18px;font-weight:600;color:var(--text-primary);margin:0;padding:0;cursor:text;-webkit-user-select:text;user-select:text}.todo-title-input{width:100%;border:none;background:transparent;font-size:18px;font-weight:600;color:var(--text-primary);outline:none;font-family:inherit;padding:0;margin:0}.todo-title-input::placeholder{color:var(--text-muted);opacity:.5}.todo-progress{font-size:12px;color:var(--text-muted);margin-top:-4px}.todo-progress-text{opacity:.8}.todo-tasks{display:flex;flex-direction:column;gap:8px;margin-top:4px}.todo-task{display:flex;align-items:center;gap:8px;padding:6px 0}.todo-task-checkbox{flex-shrink:0;width:18px;height:18px;cursor:pointer;accent-color:var(--accent)}.todo-task-input{flex:1;border:none;background:transparent;font-size:14px;line-height:1.5;color:var(--text-primary);outline:none;font-family:inherit;padding:2px 0}.todo-task-input::placeholder{color:var(--text-muted);opacity:.5}.todo-task-text{flex:1;font-size:14px;line-height:1.5;color:var(--text-primary)}.todo-task-text.completed{text-decoration:line-through;color:var(--text-muted);opacity:.7}.todo-task-delete{flex-shrink:0;width:20px;height:20px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;line-height:1;border-radius:4px;opacity:0;transition:all .15s ease}.todo-task:hover .todo-task-delete{opacity:1}.todo-task-delete:hover{background:var(--bg-secondary);color:var(--text-primary)}.todo-add-task{margin-top:4px;padding:8px 12px;border:1px dashed var(--border-medium);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-size:14px;cursor:pointer;text-align:left;font-family:inherit;transition:all .15s ease}.todo-add-task:hover{border-color:var(--accent);color:var(--accent);background:var(--bg-secondary)}.todo-task-new{margin-top:4px}.todo-task-new .todo-task-input{width:100%;padding:8px 12px;border:1px solid var(--border-medium);border-radius:var(--radius-sm);background:var(--bg-secondary)}.todo-task-new .todo-task-input:focus{border-color:var(--accent);background:var(--bg-card)}.slash-menu{position:absolute;z-index:1000;pointer-events:auto}.slash-menu-content{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-medium);padding:4px;min-width:200px;max-width:300px;max-height:400px;overflow-y:auto}.slash-menu-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s ease;-webkit-user-select:none;user-select:none}.slash-menu-item:hover,.slash-menu-item.selected{background:var(--bg-secondary)}.slash-menu-item-icon{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.slash-menu-item.selected .slash-menu-item-icon{color:var(--accent)}.slash-menu-item-label{flex:1;font-size:14px;font-weight:500;color:var(--text-primary)}.slash-menu-item.selected .slash-menu-item-label{color:var(--accent);font-weight:600}
