.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: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--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}.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))}:root{--bg: #0c0e14;--panel: #13161e;--panel-2: #1a1e28;--surface: #21252f;--text: #e0e6ef;--muted: #8491a5;--border: transparent;--border-subtle: transparent;--accent: #2dd4a8;--accent-dim: rgba(45, 212, 168, .1);--accent-secondary: #38bdf8;--danger: #f87171;--shadow: none;--shadow-pop: 0 4px 20px rgba(0, 0, 0, .45);--radius: 10px;--radius-sm: 6px;--transition: .15s ease;--sidebar-w: 260px;--inspector-w: 300px;--content-bg: #0c0e14;--font: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100vh;overflow:hidden;font-family:var(--font);font-size:16px;line-height:1.55;color:var(--text);background:var(--bg)}*,*:before,*:after,*:hover,*:focus,*:focus-within,*:focus-visible,*:active{border-color:transparent!important;outline-color:transparent!important}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}.app-shell{display:flex;height:100vh;overflow:hidden;gap:0;padding:10px}.app-shell>.sidebar,.app-shell>.sidebar.sidebar--collapsed{width:var(--sidebar-w);flex-shrink:0}.app-shell>.workspace{flex:1;min-width:200px;margin:0}.app-shell>.inspector-column,.app-shell>.inspector--collapsed{width:var(--inspector-w);flex-shrink:0}.resize-handle{width:10px;flex-shrink:0;cursor:col-resize;position:relative;z-index:5}.resize-handle:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:3px;height:32px;border-radius:2px;background:var(--border);opacity:0;transition:opacity var(--transition),background var(--transition)}.resize-handle:hover:after{opacity:1;background:var(--accent)}.sidebar,.inspector,.workspace{border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(160deg,var(--panel),var(--panel-2));box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}.workspace{background:transparent}.sidebar{overflow:hidden;display:flex;flex-direction:column;gap:6px;background:none;border:none;box-shadow:none}.sidebar--collapsed{align-items:center;padding-top:12px;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(160deg,var(--panel),var(--panel-2));box-shadow:var(--shadow)}.sidebar__card,.sidebar__identity,.sidebar__tree-card,.sidebar__attachments-card{border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(160deg,var(--panel),var(--panel-2));box-shadow:var(--shadow);flex-shrink:0}.sidebar__identity{display:flex;align-items:center;gap:10px;padding:10px 12px 10px 16px}.sidebar__identity .sidebar__toggle{flex-shrink:0}.sidebar__vault-name{font-size:1rem;font-weight:700;letter-spacing:-.02em;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.sidebar__identity-actions{display:flex;align-items:center;gap:2px;flex-shrink:0;margin-left:auto}.sidebar__icon-btn{background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--muted);cursor:pointer;width:34px;height:34px;display:flex;align-items:center;justify-content:center;font-size:.95rem;transition:background var(--transition),color var(--transition),border-color var(--transition)}.sidebar__icon-btn:hover{background:var(--accent-dim);color:var(--accent);border-color:var(--border)}.favorites-list{padding:4px 8px 8px;display:flex;flex-direction:column;gap:1px}.favorites-empty{padding:6px 8px;color:var(--muted);font-size:.75rem;line-height:1.4}.favorites-item{display:flex;align-items:center;gap:2px;border-radius:var(--radius-sm)}.favorites-item__btn{flex:1;display:flex;align-items:center;gap:6px;padding:5px 8px;background:none;border:none;border-radius:var(--radius-sm);color:var(--text);font-family:var(--font);font-size:.82rem;cursor:pointer;text-align:left;transition:background var(--transition),color var(--transition);min-width:0;overflow:hidden}.favorites-item__btn:hover{background:var(--accent-dim);color:var(--accent)}.favorites-item__icon{flex-shrink:0;opacity:.6;display:flex;align-items:center}.favorites-item__name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.favorites-item__active-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0}.favorites-item__remove{background:none;border:none;color:var(--accent);cursor:pointer;padding:4px;border-radius:var(--radius-sm);display:flex;align-items:center;opacity:.5;transition:opacity var(--transition);flex-shrink:0}.favorites-item__remove:hover{opacity:1}.favorites-tags-row{padding-top:6px;border-top:1px solid rgba(255,255,255,.05);margin-top:4px}.filter-pill__star{background:none;border:none;color:var(--muted);cursor:pointer;padding:0;margin-left:2px;display:inline-flex;align-items:center;opacity:0;transition:opacity var(--transition)}.filter-pill:hover .filter-pill__star{opacity:1}.sidebar__toggle,.inspector__toggle{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--muted);cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:background var(--transition),color var(--transition)}.sidebar__toggle:hover,.inspector__toggle:hover{background:var(--accent-dim);color:var(--accent)}.sidebar__toggle--tabs{width:26px;height:26px;font-size:.85rem;flex-shrink:0;margin-right:2px}.icon-chevron{display:inline-block;line-height:1}.search-input{width:100%;padding:8px 12px;background:#00000040;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font);font-size:.85rem;outline:none;transition:border-color var(--transition),box-shadow var(--transition)}.search-input::placeholder{color:var(--muted)}.search-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}.search-input--sm{padding:5px 10px;font-size:.78rem;flex:1;min-width:0}.sidebar__tree-card{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.sidebar__tree-header{display:flex;align-items:center;gap:8px;padding:10px 12px 6px;flex-shrink:0}.sidebar__tree-header .sidebar__section-title{margin-bottom:0;flex-shrink:0}.sidebar__card{padding:10px 12px;flex-shrink:0;overflow:hidden}.sidebar__attachments-card{max-height:200px;overflow-y:auto}.sidebar__create{position:relative;display:flex;align-items:center}.sidebar__create-btn{display:flex;align-items:center;gap:4px;padding:5px 12px;background:#00000040;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--muted);font-family:var(--font);font-size:.8rem;cursor:pointer;transition:border-color var(--transition),color var(--transition)}.sidebar__create-btn:hover{border-color:var(--accent);color:var(--accent)}.sidebar__create-icon{font-size:1rem;line-height:1;font-weight:600}.sidebar__create-menu{position:absolute;top:100%;left:0;z-index:100;min-width:160px;padding:4px 0;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 4px 16px #0006}.sidebar__create-option{display:flex;align-items:center;gap:8px;width:100%;padding:7px 12px;background:none;border:none;color:var(--text);font-family:var(--font);font-size:.82rem;cursor:pointer;text-align:left;transition:background var(--transition)}.sidebar__create-option:hover{background:var(--accent-dim)}.sidebar__create-folder{font-size:.7rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}.sidebar__create-bar{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(160deg,var(--panel),var(--panel-2));box-shadow:var(--shadow);flex-shrink:0}.sidebar__create-type-btn{display:flex;align-items:center;justify-content:center;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--muted);cursor:pointer;width:46px;height:46px;font-size:1.05rem;transition:background var(--transition),color var(--transition),border-color var(--transition)}.sidebar__create-type-btn:hover{background:var(--accent-dim);color:var(--accent);border-color:var(--border)}.sidebar__create-type-btn .sl-icon{display:block}.sidebar__section{padding:4px 12px 8px}.sidebar__section-title{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:8px}.sidebar__empty{font-size:.8rem;color:var(--muted);font-style:italic}.file-tree{-webkit-user-select:none;user-select:none;min-height:100px}.file-tree--drop-target{background:#34d3990f}.file-tree__root-zone{min-height:40px;flex-shrink:0;cursor:default}.file-tree__root-zone--active{background:#2dd4a814;border-radius:6px;background:#34d39914;margin:4px 0}.file-tree__create-zone{position:relative;display:flex;align-items:center;justify-content:center;min-height:48px;flex:1 0 48px;cursor:pointer;color:var(--muted);opacity:.4;transition:opacity .15s,background .15s;border-radius:6px}.file-tree__create-zone:hover{opacity:.75;background:var(--accent-dim)}.file-tree__create-menu{position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);z-index:200;width:200px;padding:4px 0;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 4px 16px #0006}.file-tree__create-menu--bottom{bottom:auto;top:calc(100% + 4px)}.sidebar__content--tree-half{flex:1 1 50%;min-height:80px}.sidebar__divider{flex-shrink:0;height:6px;cursor:row-resize;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;touch-action:none;background:var(--panel)}.sidebar__divider:after{content:"";width:32px;height:3px;border-radius:2px;background:var(--border);transition:background .15s}.sidebar__divider:hover:after,.sidebar__divider:active:after{background:var(--accent)}.sidebar__tagged-area{display:flex;flex-direction:column;flex:1 1 50%;min-height:80px;overflow:hidden;border-top:1px solid var(--border)}.sidebar__tagged-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px 6px;flex-shrink:0}.sidebar__tagged-title{font-size:.75rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;display:flex;align-items:center;gap:6px}.sidebar__tagged-actions{position:relative;display:flex;align-items:center;gap:2px}.sidebar__sort-wrapper{position:relative}.sidebar__sort-menu{min-width:200px}.sidebar__sort-divider{height:1px;background:#ffffff14;margin:4px 0}.tree-item__menu-option--active{color:var(--accent)}.sidebar__icon-btn--sm{width:26px;height:26px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;background:none;border:1px solid transparent;color:var(--muted);cursor:pointer;transition:background .15s,color .15s}.sidebar__icon-btn--sm:hover{background:var(--accent-dim);color:var(--accent)}.sidebar__tagged-list{flex:1;overflow-y:auto;overflow-x:hidden;padding:0 4px 4px}.tagged-item{display:flex;align-items:center;gap:2px;width:100%;padding:0 2px 0 0;border-radius:6px;position:relative;transition:background .15s}.tagged-item:hover{background:var(--accent-dim)}.tagged-item--active{background:var(--accent-dim);color:var(--accent)}.tagged-item__icon{flex-shrink:0;display:flex;color:var(--muted)}.tagged-item__name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tagged-item__tag-count{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#ffffff14;color:var(--muted);font-size:.65rem;font-weight:600;border:none;cursor:pointer;transition:background .15s}.tagged-item__tag-count:hover,.tagged-item__tag-count--open{background:#ffffff26}.tagged-item__tag-popover{position:absolute;right:0;top:calc(100% + 2px);z-index:200;display:flex;flex-wrap:wrap;gap:3px;padding:6px 8px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 4px 16px #0006;max-width:200px}.tagged-item__tags{display:flex;gap:3px;flex-shrink:0}.tagged-item__tag{font-size:.65rem;padding:1px 5px;border-radius:8px;border:1px solid var(--border);color:var(--muted);white-space:nowrap}.tagged-area-empty{padding:12px 8px;color:var(--muted);font-size:.8rem}.tree-item__row{display:flex;align-items:center;width:100%;padding:0;border:none;border-radius:6px;background:none;color:var(--text);font-family:var(--font);font-size:.82rem;cursor:pointer;text-align:left;transition:background var(--transition),color var(--transition);position:relative}.tree-item__btn,.tagged-item__btn{display:flex;align-items:center;gap:6px;flex:1;min-width:0;padding:4px 8px;border:none;border-radius:6px;background:none;color:inherit;font-family:inherit;font-size:.82rem;cursor:pointer;text-align:left}@media(max-width:768px){.sidebar__content--tree-half,.sidebar__tagged-area{flex:1 1 50%;min-height:80px}}.tree-item__row:hover{background:var(--accent-dim);color:var(--accent)}.tree-item__row--active{background:var(--accent-dim);color:var(--accent);font-weight:600}.tree-item__row--folder{background:#ffffff08}.tree-item__row--folder:hover{background:var(--accent-dim)}.tree-item__row--drop-target{background:var(--accent-dim);outline:2px dashed var(--accent);outline-offset:-2px}.tree-item__type{margin-left:auto;flex-shrink:0;font-size:.65rem;font-weight:300;color:var(--muted);opacity:.6;text-transform:uppercase;letter-spacing:.03em}.tree-item__btn[draggable=true]{cursor:grab}.tree-item__btn[draggable=true]:active{cursor:grabbing;opacity:.6}.tree-item__menu-wrapper{position:relative;flex-shrink:0}.tree-item__menu-btn{display:none;align-items:center;justify-content:center;width:26px;height:26px;border:none;border-radius:4px;background:none;color:var(--muted);font-size:.85rem;cursor:pointer;line-height:1;padding:0}.tree-item__row:hover .tree-item__menu-btn,.tree-item__menu-btn[aria-expanded=true],.tree-item__menu-wrapper--mobile .tree-item__menu-btn,.tagged-item:hover .tree-item__menu-btn{display:flex}.tree-item__menu-btn:hover{background:#ffffff1a;color:var(--text)}.tree-item__menu{position:absolute;top:100%;right:0;z-index:200;width:200px;padding:4px 0;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 4px 16px #0006}.tree-item__menu-option{display:flex;align-items:center;gap:6px;width:100%;padding:6px 12px;border:none;background:none;color:var(--text);font-family:var(--font);font-size:.8rem;cursor:pointer;text-align:left}.tree-item__menu-option:hover{background:var(--accent-dim)}.tree-item__menu-option--danger:hover{background:#ef444426;color:#ef4444}.tree-item__menu-sep{height:1px;background:var(--border-subtle, rgba(255,255,255,.06));margin:4px 0}.tree-item__color-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;padding:6px 10px}.tree-item__color-swatch{width:20px;height:20px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:border-color .15s,transform .15s;padding:0;outline:none}.tree-item__color-swatch:hover{transform:scale(1.2);border-color:var(--text)}.tree-item__color-swatch--active{border-color:var(--text);box-shadow:0 0 0 1px var(--panel-2)}.tree-item__color-swatch--none{background:conic-gradient(var(--muted) 0deg 45deg,transparent 45deg 135deg,var(--muted) 135deg 225deg,transparent 225deg 315deg,var(--muted) 315deg 360deg);opacity:.5}.tree-item__color-swatch--none:hover{opacity:1}.tree-item__color-swatch--custom{background:conic-gradient(#ef4444,#eab308,#22c55e,#3b82f6,#a855f7,#ef4444);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.tree-item__color-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;border:none;padding:0}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000}.dialog-box{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:20px 24px;min-width:300px;max-width:400px;width:max-content;text-align:center;box-shadow:0 8px 32px #00000080}.dialog-box p{margin:0 0 8px;font-size:.85rem;color:var(--text);word-break:break-word}.dialog-box__warn{font-size:.75rem!important;color:var(--muted)!important}.dialog-box__actions{display:flex;gap:8px;justify-content:center;margin-top:14px}.dialog-box__btn{padding:6px 16px;border:none;border-radius:4px;font-family:var(--font);font-size:.8rem;cursor:pointer}.dialog-box__btn--cancel{background:#ffffff14;color:var(--text)}.dialog-box__btn--cancel:hover{background:#ffffff24}.dialog-box__btn--danger{background:#ef444433;color:#ef4444}.dialog-box__btn--danger:hover{background:#ef444459}.dialog-box__btn--primary{background:var(--accent-dim);color:var(--accent)}.dialog-box__btn--primary:hover{background:#34d39938}.rename-input{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel);color:var(--text);font-size:.9rem;margin:8px 0}.rename-input:focus{outline:none;border-color:var(--accent)}.tree-item__icon{flex-shrink:0;font-size:.75rem;width:16px;text-align:center;display:inline-flex;align-items:center;justify-content:center}.tree-item__icon .sl-icon{display:block}.tree-item__arrow-btn{flex-shrink:0;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;background:none;border:none;padding:0;cursor:pointer;color:var(--muted);border-radius:4px;transition:color var(--transition),background var(--transition)}.tree-item__arrow-btn:hover{color:var(--accent);background:var(--accent-dim)}.tree-item__chevron{display:block;transition:transform .2s ease;color:inherit}.tree-item__chevron--open{transform:rotate(90deg)}.tree-item__arrow-spacer{flex-shrink:0;width:24px;display:inline-block}.tree-item__indent{flex-shrink:0;width:16px;align-self:stretch;position:relative;display:inline-flex}.tree-item__indent:before{content:"";position:absolute;left:50%;top:-4px;bottom:-4px;width:1px;background:#ffffff14;transform:translate(-50%)}.tree-item__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.tree-item__count{font-size:.7rem;color:var(--muted);background:#ffffff0f;padding:1px 6px;border-radius:10px;flex-shrink:0}.tag-cloud{display:flex;flex-wrap:wrap;gap:6px}.tag-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;background:var(--accent);color:#0a0d12;font-size:.83rem;font-weight:600;border-radius:20px;cursor:default;transition:opacity var(--transition)}.tag-pill:hover{opacity:.85}.tag-pill--sm{padding:3px 9px;font-size:.78rem}.tag-pill__count{font-size:.65rem;opacity:.7}.category-list{list-style:none}.category-list__item{display:flex;justify-content:space-between;align-items:center;padding:4px 8px;border-radius:6px;font-size:.82rem;cursor:pointer;transition:background var(--transition)}.category-list__item:hover{background:var(--accent-dim)}.category-list__name{color:var(--text)}.category-list__count{font-size:.7rem;color:var(--muted)}.category-badge{display:inline-block;padding:2px 8px;font-size:.68rem;font-weight:500;color:var(--accent);background:var(--accent-dim);border:none;border-radius:6px;margin-right:4px}.breadcrumbs::-webkit-scrollbar{display:none}.breadcrumbs__item{display:inline-flex;align-items:center;gap:2px;white-space:nowrap}.breadcrumbs__sep{color:var(--muted);margin:0 4px;font-size:.85rem}.breadcrumbs__icon{font-size:.75rem}.breadcrumbs__link{background:none;border:none;color:var(--accent);cursor:pointer;padding:2px 4px;border-radius:var(--radius-sm);font:inherit;font-size:.8rem;transition:background .15s ease,color .15s ease}.breadcrumbs__link:hover{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--text)}.breadcrumbs__current{color:var(--text);padding:2px 4px;font-weight:600}.workspace{overflow-y:auto;padding:24px 32px;position:relative}.workspace:has(>.canvas-view),.workspace:has(>.graph-view),.workspace:has(>.note-view),.workspace:has(>.collection-view),.workspace:has(>.image-viewer),.workspace:has(>.split-container),.workspace:has(>.cal-root){padding:0;overflow:hidden}.split-toolbar{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:11;display:flex;gap:4px}.split-toolbar__btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text-muted);cursor:pointer;transition:background var(--transition),color var(--transition),border-color var(--transition)}.split-toolbar__btn:hover{background:var(--bg-hover, rgba(255, 255, 255, .06));color:var(--text);border-color:var(--accent)}.split-toolbar__btn--active{background:var(--accent);color:var(--bg);border-color:var(--accent)}.split-container{display:flex;flex:1;min-height:0;overflow:hidden;gap:0}.split-container--vertical{flex-direction:row}.split-container--horizontal{flex-direction:column}.split-pane{min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column;position:relative;background:var(--content-bg);transition:box-shadow .15s ease}.split-pane--active:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:2px solid var(--accent);border-radius:inherit;pointer-events:none;z-index:50}.split-pane:has(>.canvas-view),.split-pane:has(>.graph-view),.split-pane:has(>.note-view),.split-pane:has(>.collection-view),.split-pane:has(>.image-viewer),.split-pane:has(>.cal-root){padding:0}.split-container--vertical>.split-pane:first-child{border-right:1px solid var(--surface);border-radius:var(--radius) 0 0 var(--radius)}.split-container--vertical>.split-pane:last-child{border-left:1px solid var(--surface);border-radius:0 var(--radius) var(--radius) 0}.split-container--horizontal>.split-pane:first-child{border-bottom:1px solid var(--surface);border-radius:var(--radius) var(--radius) 0 0}.split-container--horizontal>.split-pane:last-child{border-top:1px solid var(--surface);border-radius:0 0 var(--radius) var(--radius)}.split-divider{flex-shrink:0;position:relative;z-index:5;background:transparent}.split-divider:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:2px;background:var(--surface);transition:background var(--transition)}.split-divider:hover:after{background:var(--accent)}.split-divider--vertical{width:10px;cursor:col-resize}.split-divider--vertical:after{width:3px;height:32px}.split-divider--horizontal{height:10px;cursor:row-resize}.split-divider--horizontal:after{width:32px;height:3px}.split-pane .breadcrumbs{top:8px;left:12px;max-width:calc(100% - 24px)}.breadcrumbs{position:absolute;top:12px;left:24px;z-index:10;display:flex;align-items:center;gap:2px;height:36px;padding:0 12px;font-size:.8rem;line-height:1;max-width:calc(100% - 98px);width:fit-content;overflow-x:auto;scrollbar-width:none;background:#101722bf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-sm);border:1px solid var(--border);pointer-events:auto;box-sizing:border-box}.note-view{width:100%;height:100%;display:flex;flex-direction:column;position:relative;transition:box-shadow .15s ease;overflow:hidden;background:var(--content-bg)}.note-view--drop-active{box-shadow:inset 0 0 0 3px var(--accent)}.note-view--drop-active:after{content:"Drop file to attach";position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000080;color:var(--accent);font-size:1.1rem;font-weight:600;z-index:50;pointer-events:none;border-radius:8px}.note-view--empty,.note-view--loading,.note-view--error{display:flex;align-items:center;justify-content:center;height:100%}.note-view__placeholder{text-align:center;color:var(--muted)}.note-view__placeholder-icon{font-size:3rem;display:block;margin-bottom:12px;opacity:.5}.note-view__header{flex-shrink:0;display:flex;align-items:baseline;gap:10px;padding:56px 16px 8px 24px;border-bottom:1px solid var(--border-subtle)}.note-view__body{flex:1;display:flex;flex-direction:row;overflow:hidden}.note-view__body-main,.note-view__editor-col{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.note-view__aside{width:240px;flex-shrink:0;border-left:none;overflow-y:auto;padding:16px 14px}.note-view__body .resize-handle,.note-view__portrait-layout .resize-handle{background:#ffffff08}.note-view__aside--portrait{padding:56px 14px 16px}.note-view__aside--portrait .note-cover--portrait{max-width:100%;width:100%;margin-left:0;margin-right:0}.note-view__portrait-layout{flex:1;display:flex;flex-direction:row;overflow:hidden}.note-view__portrait-main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.note-cover{width:100%;background:#00000040;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;margin-bottom:12px;position:relative}.note-cover--widescreen{height:15vh;min-height:80px;max-height:200px}.note-cover--portrait{aspect-ratio:2 / 3;max-width:180px;margin-left:auto;margin-right:auto}.note-cover__img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}.note-cover__reposition{position:absolute;bottom:6px;right:6px;background:#0000008c;color:#fff;border:none;border-radius:4px;padding:3px 8px;font-size:.7rem;cursor:pointer;opacity:0;transition:opacity .15s;z-index:2}.note-cover:hover .note-cover__reposition{opacity:1}.note-cover__reposition:hover{background:#000000bf}.note-cover__placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--muted);font-size:.72rem;opacity:.5;padding:16px 0}.crop-editor-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#000000b3;display:flex;align-items:center;justify-content:center;padding:24px}.crop-editor{background:var(--panel, #1e1e2e);border-radius:10px;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 32px #00000080}.crop-editor__header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-subtle, #333)}.crop-editor__title{font-size:.85rem;font-weight:600;color:var(--text, #ccc)}.crop-editor__actions{display:flex;gap:8px}.crop-editor__btn{border:none;border-radius:6px;padding:6px 16px;font-size:.78rem;cursor:pointer;font-weight:500}.crop-editor__btn--cancel{background:transparent;color:var(--muted, #888)}.crop-editor__btn--cancel:hover{color:var(--text, #ccc)}.crop-editor__btn--save{background:var(--accent, #34d399);color:#000}.crop-editor__btn--save:hover{filter:brightness(1.1)}.crop-editor__canvas{position:relative;flex:1;min-height:0;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#111;-webkit-user-select:none;user-select:none;touch-action:none}.crop-editor__image{display:block;max-width:100%;max-height:70vh;pointer-events:none}.crop-editor__mask{position:absolute;background:#0000008c;pointer-events:none}.crop-editor__rect{position:absolute;border:2px solid var(--accent, #34d399);cursor:move;box-shadow:0 0 0 9999px #0000;z-index:2}.crop-editor__handle{position:absolute;width:12px;height:12px;background:var(--accent, #34d399);border:2px solid #000;border-radius:2px;z-index:3}.crop-editor__handle--nw{top:-6px;left:-6px;cursor:nw-resize}.crop-editor__handle--ne{top:-6px;right:-6px;cursor:ne-resize}.crop-editor__handle--sw{bottom:-6px;left:-6px;cursor:sw-resize}.crop-editor__handle--se{bottom:-6px;right:-6px;cursor:se-resize}.crop-editor__grid{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(to right,rgba(255,255,255,.15) 1px,transparent 1px) 33.33% 0 / 33.33% 100%,linear-gradient(to bottom,rgba(255,255,255,.15) 1px,transparent 1px) 0 33.33% / 100% 33.33%}.cover-picker__reposition-btn{width:100%;padding:8px 12px;background:#34d3991a;border:1px solid var(--accent, #34d399);border-radius:6px;color:var(--accent, #34d399);font-size:.8rem;cursor:pointer;margin-bottom:6px}.cover-picker__reposition-btn:hover{background:#34d39933}.note-props__title{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}.note-props__list{margin:0}.note-props__row{display:flex;justify-content:space-between;gap:8px;padding:3px 0;font-size:.8rem;border-bottom:1px solid var(--border-subtle)}.note-props__row:last-child{border-bottom:none}.note-props__key{color:var(--muted);font-weight:500;white-space:nowrap}.note-props__val{color:var(--text);text-align:right;min-width:0;word-break:break-word}.note-aside-panel{display:flex;flex-direction:column;gap:4px}.note-aside-panel__section{padding:8px 0}.note-aside-panel__section:first-child{padding-top:0}.note-aside-panel__title{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;display:flex;align-items:center;gap:6px}.note-aside-panel__badge{font-size:.6rem;background:#ffffff0f;padding:1px 5px;border-radius:10px}.inspector__linked-group{margin-bottom:8px}.inspector__linked-group:last-child{margin-bottom:0}.inspector__linked-label{display:block;font-size:.68rem;color:var(--muted);margin-bottom:4px}.inspector__linked-item{display:block;width:100%;text-align:left;background:none;border:none;color:var(--accent);font-size:.8rem;padding:3px 0;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity var(--transition)}.inspector__linked-item:hover{opacity:.75}.cover-picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:200}.cover-picker{background:var(--panel);border-radius:var(--radius);width:min(560px,92vw);max-height:80vh;display:flex;flex-direction:column;gap:12px;padding:16px;overflow:hidden;box-shadow:0 8px 40px #00000080}.cover-picker__header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.cover-picker__title{font-size:.9rem;font-weight:600;color:var(--text)}.cover-picker__close{background:none;border:none;color:var(--muted);font-size:1rem;cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm);transition:var(--transition)}.cover-picker__close:hover{color:var(--text);background:var(--panel-2)}.cover-picker__upload{flex-shrink:0;border:1px dashed var(--border-subtle);border-radius:var(--radius-sm);padding:16px;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:.82rem;cursor:pointer;transition:var(--transition)}.cover-picker__upload:hover,.cover-picker__upload--active{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.cover-picker__remove-btn{flex-shrink:0;background:none;border:1px solid var(--border-subtle);color:#ff6464bf;padding:6px 12px;border-radius:var(--radius-sm);font-size:.8rem;cursor:pointer;transition:var(--transition);width:100%;text-align:left}.cover-picker__remove-btn:hover{border-color:#ff646480;color:#ff6464;background:#ff505014}.cover-picker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px;overflow-y:auto;flex:1;min-height:0;padding-right:2px}.cover-picker__thumb{aspect-ratio:1;overflow:hidden;border-radius:var(--radius-sm);border:2px solid transparent;cursor:pointer;padding:0;background:var(--panel-2);transition:border-color .12s ease}.cover-picker__thumb:hover{border-color:var(--accent)}.cover-picker__thumb--active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.cover-picker__thumb img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}.cover-picker__empty{color:var(--muted);font-size:.82rem;font-style:italic;text-align:center;padding:16px 0}.embed-bar{display:flex;align-items:center;gap:8px;padding:6px 12px;margin:6px 0;border:none;border-radius:8px;background:color-mix(in srgb,var(--bg, #0c0e14),black 20%);transition:background .15s}.embed-bar:hover{background:color-mix(in srgb,var(--bg, #0c0e14),black 10%)}.embed-bar--expanded{display:none}.embed-bar__label{flex:1;font-size:.82rem;font-weight:600;color:var(--text-muted, #8b8fa3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;user-select:none}.embed-bar__toggle,.embed-bar__remove{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:4px;background:transparent;cursor:pointer;transition:background .15s,color .15s;flex-shrink:0}.embed-bar__toggle{color:var(--accent)}.embed-bar__toggle:hover{background:#34d3991f}.embed-bar__remove{color:var(--muted, #8491a5)}.embed-bar__remove:hover{color:#ef4444;background:#ef44441f}.embed-container{margin:6px 0 12px;border-radius:10px;overflow:hidden;background:color-mix(in srgb,var(--bg, #0c0e14),black 20%)}.embed-frame{overflow:hidden;position:relative;background:color-mix(in srgb,var(--bg, #0c0e14),black 20%);border-radius:10px}.embed-frame__body{position:relative}.embed-frame__body--canvas{height:450px}.embed-frame__body--canvas .canvas-view{height:100%;border-radius:0;background:transparent}.embed-frame__body--collection{max-height:500px;overflow-y:auto}.embed-frame__body--collection .collection-view{border-radius:0;background:transparent}.embed-frame__toolbar{position:absolute;top:6px;right:6px;z-index:10;display:flex;gap:4px;opacity:0;transition:opacity .15s}.embed-frame:hover .embed-frame__toolbar{opacity:1}.embed-frame__toolbar-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:4px;background:#00000080;cursor:pointer;transition:background .15s,color .15s;flex-shrink:0}.embed-frame__toolbar-btn--collapse{color:var(--accent)}.embed-frame__toolbar-btn--collapse:hover{background:#34d3992e}.embed-frame__toolbar-btn--remove{color:var(--muted, #8491a5)}.embed-frame__toolbar-btn--remove:hover{color:#ef4444;background:#ef444426}.embed-container .canvas-view__header{padding:8px 12px 0;margin-bottom:4px}.embed-container .collection-view__header{padding:8px 16px 10px}.note-view__title{flex:1;min-width:0;font-size:1.6rem;font-weight:700;letter-spacing:-.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.note-view__title-row{display:flex;align-items:center;gap:6px;min-width:0;max-width:70%}.note-view__rename-btn{background:none;border:none;color:var(--muted);cursor:pointer;padding:4px;border-radius:var(--radius-sm);opacity:.4;transition:opacity .15s,color .15s;flex-shrink:0}.note-view__title-row:hover .note-view__rename-btn{opacity:.8}.note-view__rename-btn:hover{color:var(--accent);opacity:1}.note-view__rename-row{max-width:70%;min-width:0}.note-view__rename-input{width:100%;font-size:1.6rem;font-weight:700;letter-spacing:-.03em;background:var(--panel);color:var(--text);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:2px 8px;outline:none;font-family:inherit}.note-view__actions{display:flex;align-items:center;gap:12px;margin-bottom:10px}.note-view__mode-toggle{display:flex;background:var(--panel);border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border);flex-shrink:0}.mode-btn{background:transparent;border:none;color:var(--muted);padding:6px 16px;font-size:.8rem;font-weight:600;cursor:pointer;transition:background var(--transition),color var(--transition)}.mode-btn:hover{color:var(--text);background:var(--panel-2)}.mode-btn--active{background:var(--accent-dim);color:var(--accent)}.save-btn{background:var(--panel);border:1px solid var(--border);color:var(--muted);padding:6px 16px;font-size:.8rem;font-weight:600;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition)}.save-btn--dirty{background:var(--accent);color:var(--bg);border-color:var(--accent)}.save-btn:disabled{opacity:.5;cursor:default}.note-view__editor-wrap{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.note-view__editor{flex:1;overflow:auto}.note-view__editor .tiptap{outline:none;padding:16px 24px;min-height:200px;height:100%}.note-view__editor .tiptap p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:var(--muted);opacity:.5;pointer-events:none;height:0}.note-view__editor .tiptap:focus-visible{outline:none}.note-view__editor--readonly,.note-view__editor--readonly .tiptap{cursor:default}.note-view__autosave-indicator{font-size:.8rem;color:var(--muted);font-style:italic}.note-view__save-status{display:block;font-size:.73rem;font-weight:500;color:var(--accent);opacity:.7;transition:color var(--transition),opacity var(--transition);white-space:nowrap;flex-shrink:0;margin-left:auto}.note-view__save-status--dirty{color:#f59e0b;opacity:1}.note-view__save-status--saving{color:var(--muted);opacity:1;font-style:italic}.editor-toolbar{display:flex;align-items:center;gap:4px;padding:6px 10px;background:var(--panel-2);flex-wrap:wrap;flex-shrink:0}.toolbar-group{display:flex;align-items:center;gap:2px}.toolbar-btn{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:28px;padding:0 8px;border:none;border-radius:4px;background:transparent;color:var(--muted);font-size:.78rem;font-weight:600;cursor:pointer;transition:all .12s ease;font-family:var(--font);white-space:nowrap}.toolbar-btn:hover{background:#ffffff14;color:var(--text)}.toolbar-btn--active{background:var(--accent-dim);color:var(--accent)}.toolbar-btn:disabled,.toolbar-btn--disabled{opacity:.3;cursor:not-allowed}.toolbar-btn:disabled:hover,.toolbar-btn--disabled:hover{background:transparent;color:var(--muted)}.toolbar-select{height:28px;padding:0 8px;border:1px solid var(--border);border-radius:4px;background:var(--panel);color:var(--text);font-size:.78rem;font-family:var(--font);cursor:pointer;outline:none}.toolbar-select:hover{border-color:var(--accent)}.toolbar-select option{background:var(--panel);color:var(--text)}.toolbar-sep{width:1px;height:20px;background:var(--border);margin:0 4px;flex-shrink:0}.tiptap-editor h1{font-size:1.6rem;font-weight:700;margin:1em 0 .5em}.tiptap-editor h2{font-size:1.3rem;font-weight:700;margin:.9em 0 .4em}.tiptap-editor h3{font-size:1.1rem;font-weight:600;margin:.8em 0 .4em}.tiptap-editor h4{font-size:1rem;font-weight:600;margin:.8em 0 .3em;color:var(--muted)}.tiptap-editor p{margin:.4em 0;line-height:1.7}.tiptap-editor [data-indent="1"]{margin-left:2em}.tiptap-editor [data-indent="2"]{margin-left:4em}.tiptap-editor [data-indent="3"]{margin-left:6em}.tiptap-editor [data-indent="4"]{margin-left:8em}.tiptap-editor [data-indent="5"]{margin-left:10em}.tiptap-editor [data-indent="6"]{margin-left:12em}.tiptap-editor [data-indent="7"]{margin-left:14em}.tiptap-editor [data-indent="8"]{margin-left:16em}.tiptap-editor ul,.tiptap-editor ol{padding-left:1.5em;margin:.4em 0}.tiptap-editor li{margin:.15em 0}.tiptap-editor li p{margin:0}.tiptap-editor blockquote{margin:.6em 0;padding:8px 16px;border-left:none;background:#34d39914;border-radius:var(--radius-sm);color:var(--muted)}.tiptap-editor pre{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 16px;margin:.6em 0;overflow-x:auto;font-family:var(--font-mono);font-size:.85em;line-height:1.5}.tiptap-editor pre code{background:none;padding:0;border-radius:0;font-size:inherit;color:var(--text)}.tiptap-editor code{background:#ffffff0f;padding:2px 6px;border-radius:4px;font-family:var(--font-mono);font-size:.88em;color:var(--accent)}.tiptap-editor mark{background:#facc154d;color:var(--text);border-radius:2px;padding:1px 2px}.tiptap-editor .hr-line,.tiptap-editor div[data-type=horizontalRule]{margin:1.5em 0;padding:.5em 0;cursor:pointer;-webkit-user-select:none;user-select:none}.tiptap-editor .hr-line hr,.tiptap-editor div[data-type=horizontalRule] hr,.tiptap-editor hr{border:none;height:1px;background:var(--muted, #8491a5);opacity:.35;margin:0;display:block}.tiptap-editor a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.tiptap-editor a[href^="vault:"]{text-decoration:none;color:var(--accent);cursor:pointer}.tiptap-editor a[href^="vault:"]:hover{opacity:.8}.tiptap-editor a[href^="/api/v1/attachments/"]{display:inline-flex;align-items:center;gap:.3em;padding:2px 8px;background:#ffffff0f;border-radius:6px;color:var(--text-muted);text-decoration:none;font-size:.875em;cursor:pointer;transition:background .15s,color .15s;vertical-align:middle}.tiptap-editor a[href^="/api/v1/attachments/"]:hover{background:#ffffff1f;color:var(--text)}.tiptap-editor a[href$=".pdf"][href*="/api/v1/attachments/"]{background:#f8717114;color:#f87171}.tiptap-editor a[href$=".pdf"][href*="/api/v1/attachments/"]:hover{background:#f8717129}.tiptap-editor img{max-width:100%;border-radius:var(--radius-sm);margin:.5em 0;vertical-align:middle}.tiptap-editor u{text-underline-offset:3px}.tiptap-editor ul[data-type=taskList]{list-style:none;padding-left:0}.tiptap-editor ul[data-type=taskList] li{display:flex;align-items:flex-start;gap:8px}.tiptap-editor ul[data-type=taskList] li label{flex-shrink:0;margin-top:3px}.tiptap-editor ul[data-type=taskList] li label input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px;cursor:pointer}.tiptap-editor ul[data-type=taskList] li>div{flex:1;min-height:1.5em}.tiptap-editor ul[data-type=taskList] li>div>p{margin:0}.tiptap-editor ul[data-type=taskList] ul[data-type=taskList]{padding-left:1.5em;margin:.2em 0}.note-view__meta{display:flex;flex-wrap:wrap;gap:6px}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.markdown-body{line-height:1.75;word-wrap:break-word}.markdown-body h1{font-size:1.6rem;font-weight:700;margin:1.4em 0 .6em;letter-spacing:-.02em}.markdown-body h2{font-size:1.3rem;font-weight:700;margin:1.2em 0 .5em;letter-spacing:-.01em}.markdown-body h3{font-size:1.1rem;font-weight:600;margin:1em 0 .4em}.markdown-body h4{font-size:1rem;font-weight:600;margin:1em 0 .4em;color:var(--muted)}.markdown-body h5,.markdown-body h6{font-size:.9rem;font-weight:600;margin:.8em 0 .3em;color:var(--muted)}.markdown-body p{margin:.6em 0}.markdown-body ul,.markdown-body ol{padding-left:1.5em;margin:.5em 0}.markdown-body li{margin:.25em 0}.markdown-body blockquote{margin:.75em 0;padding:8px 16px;border-left:none;background:#34d39914;border-radius:var(--radius-sm);color:var(--muted)}.markdown-body hr{border:none;height:1px;background:var(--muted, #8491a5);opacity:.35;margin:1.5em 0}.markdown-body strong{font-weight:700;color:var(--text)}.markdown-body em{font-style:italic}.inline-code{padding:1px 6px;background:#ffffff12;border:1px solid var(--border);border-radius:4px;font-family:var(--font-mono);font-size:.85em;color:var(--accent)}.code-block{margin:1em 0;padding:16px;background:#0000004d;border:1px solid var(--border);border-radius:var(--radius-sm);overflow-x:auto;font-family:var(--font-mono);font-size:.82rem;line-height:1.6;color:var(--text)}.code-block code{font-family:inherit}.note-embed-img{max-width:100%;border-radius:var(--radius-sm);margin:.75em 0;border:1px solid var(--border)}.image-viewer{display:flex;flex-direction:column;height:100%;background:var(--surface)}.image-viewer__toolbar{display:flex;align-items:center;justify-content:space-between;padding:56px 16px 8px;background:var(--panel);flex-shrink:0}.image-viewer__name{font-size:.85rem;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-viewer__controls{display:flex;align-items:center;gap:4px}.image-viewer__btn{background:var(--surface-hover);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);padding:4px 10px;font-size:.8rem;cursor:pointer;transition:background var(--transition),color var(--transition)}.image-viewer__btn:hover{background:var(--surface-elevated);color:var(--text)}.image-viewer__btn--danger:hover{background:#dc2626;color:#fff;border-color:#dc2626}.image-viewer__zoom{font-size:.75rem;color:var(--muted);min-width:40px;text-align:center}.image-viewer__canvas{flex:1;overflow:auto;display:flex;align-items:center;justify-content:center;padding:24px}.image-viewer__img{max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--radius);transition:transform .15s ease;transform-origin:center center}.image-viewer__error,.image-viewer__unsupported{text-align:center;color:var(--muted)}.image-viewer__error-icon{font-size:2rem;display:block;margin-bottom:8px}.image-viewer__error-path{font-size:.75rem;color:var(--muted);margin-top:4px}.image-viewer__file-icon{font-size:3rem;display:block;margin-bottom:12px}.image-viewer__download{display:inline-block;margin-top:12px;padding:6px 16px;border-radius:var(--radius-sm);background:var(--accent);color:#fff;text-decoration:none;font-size:.82rem}.image-viewer__canvas--pdf{padding:0}.image-viewer__pdf{width:100%;height:100%;border:none;background:var(--surface)}.wikilink{color:var(--accent);text-decoration:none;text-decoration-line:underline;text-decoration-style:dotted;text-underline-offset:2px;cursor:pointer;transition:opacity var(--transition)}.wikilink:hover{opacity:.8}.search-results{max-width:780px;margin:0 auto;width:100%}.search-results__heading{font-size:1rem;font-weight:600;margin-bottom:16px;color:var(--muted)}.search-results__query{color:var(--accent)}.search-results__count{font-size:.75rem;background:#ffffff0f;padding:2px 8px;border-radius:10px;margin-left:8px;color:var(--muted)}.search-results__empty{color:var(--muted);font-style:italic}.search-results__list{list-style:none}.search-results__item{margin-bottom:4px}.search-results__link{display:flex;flex-direction:column;gap:2px;width:100%;padding:10px 14px;background:none;border:1px solid transparent;border-radius:var(--radius-sm);text-align:left;cursor:pointer;font-family:var(--font);color:var(--text);transition:background var(--transition),border-color var(--transition)}.search-results__link:hover{background:var(--accent-dim);border-color:var(--border)}.search-results__title{font-weight:600;font-size:.9rem}.search-results__path{font-size:.72rem;color:var(--muted)}.search-results__snippet{font-size:.8rem;color:var(--muted);line-height:1.5}.search-highlight{background:#34d39940;color:var(--accent);border-radius:2px;padding:0 2px}.inspector-column{display:flex;flex-direction:column;gap:8px;overflow:hidden}.inspector{display:flex;flex-direction:column;overflow:hidden;flex:1;min-height:0;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(160deg,var(--panel),var(--panel-2));box-shadow:var(--shadow)}.inspector__body{flex:1;overflow-y:auto}.inspector--collapsed{align-items:center;padding-top:12px;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(160deg,var(--panel),var(--panel-2));box-shadow:var(--shadow)}.inspector__vault-panel{padding:10px;flex-shrink:0;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(160deg,var(--panel),var(--panel-2));box-shadow:var(--shadow)}.inspector__identity{display:flex;align-items:center;gap:10px;padding:0 4px 0 6px}.inspector__vault-name{flex:1;font-size:.95rem;font-weight:700;letter-spacing:-.01em;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inspector__identity-actions{display:flex;gap:4px;flex-shrink:0}.inspector__nav{display:flex;gap:4px;margin-top:8px}.inspector__nav-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 4px 6px;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(160deg,var(--panel),var(--panel-2));color:var(--muted);font-size:.6rem;font-weight:600;letter-spacing:.02em;cursor:pointer;transition:color .15s,background .15s}.inspector__nav-btn:hover{color:var(--accent);background:var(--panel-2)}.inspector__header{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 8px;flex-shrink:0}.inspector__title{font-size:.85rem;font-weight:700;letter-spacing:-.01em;color:var(--muted)}.inspector__section{padding:12px 16px}.inspector__section-title{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:8px;display:flex;align-items:center;gap:6px}.inspector__badge{font-size:.65rem;background:#ffffff0f;padding:1px 6px;border-radius:10px}.inspector__meta-list{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:.8rem}.inspector__meta-list dt{color:var(--muted);font-weight:500}.inspector__meta-list dd{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inspector__path{font-size:.72rem;font-family:var(--font-mono)}.inspector__tags,.inspector__categories{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.inspector__empty,.inspector__empty-state{color:var(--muted);font-size:.8rem;font-style:italic;padding:8px 0}.inspector__cover-wrap{border-radius:var(--radius-sm);overflow:hidden;margin-bottom:8px}.inspector__cover-wrap--widescreen{aspect-ratio:16 / 9;width:100%}.inspector__cover-wrap--portrait{aspect-ratio:2 / 3;width:50%}.inspector__cover{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}.inspector__cover-orientation{display:flex;gap:6px}.inspector__cover-btn{flex:1;padding:4px 8px;background:var(--panel-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--muted);font-size:.72rem;cursor:pointer;transition:var(--transition)}.inspector__cover-btn:hover{border-color:var(--accent);color:var(--text)}.inspector__cover-btn--active{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.inspector__empty-state{display:flex;align-items:center;justify-content:center;height:100%;padding:24px}.cal-layers{padding:12px 16px}.cal-layers__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.cal-layers__title{font-size:13px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.cal-layers__add{background:var(--surface);border:none;color:var(--text);font-size:18px;width:26px;height:26px;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--transition)}.cal-layers__add:hover{background:var(--panel-2)}.cal-layer-row{display:flex;align-items:center;gap:8px;padding:4px 0}.cal-layer-row__toggle{background:none;border:none;cursor:pointer;font-size:14px;padding:0;line-height:1;opacity:.7;transition:opacity var(--transition)}.cal-layer-row__toggle:hover,.cal-layer-row__toggle--on{opacity:1}.cal-layer-row__name{flex:1;font-size:13px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:default}.cal-layer-row__input{flex:1;font-size:13px;background:var(--surface);border:1px solid var(--accent);color:var(--text);padding:2px 6px;border-radius:var(--radius-sm);font-family:var(--font);outline:none}.cal-layer-row__color{width:22px;height:22px;border:none;border-radius:4px;cursor:pointer;background:transparent;padding:0}.cal-layer-row__color::-webkit-color-swatch-wrapper{padding:0}.cal-layer-row__color::-webkit-color-swatch{border:none;border-radius:4px}.cal-layer-row__del{background:none;border:none;color:var(--muted);cursor:pointer;font-size:16px;padding:0 2px;line-height:1;opacity:0;transition:opacity var(--transition),color var(--transition)}.cal-layer-row:hover .cal-layer-row__del{opacity:1}.cal-layer-row__del:hover{color:var(--danger)}.inspector__graph-panel{flex-shrink:0}.inspector__graph-toggle{width:100%;display:flex;align-items:center;gap:6px;padding:8px 12px;background:none;border:none;color:var(--text-secondary);font-size:.82rem;font-weight:600;cursor:pointer;text-align:left}.inspector__graph-toggle:hover{color:var(--text);background:var(--surface-hover)}.inspector__graph-toggle-icon{font-size:.7em}.inspector__graph-view{height:200px;position:relative;background:var(--surface)}.inspector__graph-view .react-flow__pane{cursor:grab}.mini-graph-node{background:var(--surface-elevated);border:1px solid var(--border);border-radius:6px;padding:4px 10px;font-size:.72rem;color:var(--text-secondary);cursor:pointer;white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}.mini-graph-node--current{border-color:var(--accent);color:var(--text);background:color-mix(in srgb,var(--accent) 12%,var(--surface-elevated))}.mini-graph-node .graph-handle{width:4px;height:4px;background:var(--border);border:none}.mini-graph-empty{display:flex;align-items:center;justify-content:center;height:80px;color:var(--muted);font-size:.8rem}.property-links-list{list-style:none}.property-links-list__item{margin-bottom:2px}.property-links-list__link{display:flex;align-items:center;gap:6px;width:100%;padding:4px 8px;background:none;border:none;border-radius:4px;color:var(--text-secondary);font-size:.82rem;cursor:pointer;text-align:left}.property-links-list__link:hover{background:var(--surface-hover);color:var(--text)}.property-links-list__dir{color:var(--muted);flex-shrink:0}.property-links-list__title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.property-links-list__label{color:var(--muted);font-size:.72rem;flex-shrink:0}.backlinks-list{list-style:none}.backlinks-list__item{margin-bottom:2px}.backlinks-list__link{display:flex;flex-direction:column;gap:2px;width:100%;padding:6px 8px;background:none;border:none;border-radius:6px;cursor:pointer;font-family:var(--font);text-align:left;transition:background var(--transition)}.backlinks-list__link:hover{background:var(--accent-dim)}.backlinks-list__title{font-size:.82rem;font-weight:600;color:var(--text)}.backlinks-list__excerpt{font-size:.72rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-backdrop{display:none}.side-pane-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#0000;transition:background .25s cubic-bezier(.4,0,.2,1);pointer-events:none}.side-pane-overlay--open{background:#0000008c;pointer-events:auto}.side-pane{width:520px;max-width:90vw;height:80vh;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-lg, 12px);background:var(--panel);box-shadow:0 16px 48px #00000080;opacity:0;transform:scale(.95) translateY(12px);transition:opacity .25s cubic-bezier(.4,0,.2,1),transform .25s cubic-bezier(.4,0,.2,1)}.side-pane--open{opacity:1;transform:scale(1) translateY(0)}.side-pane__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.side-pane__title{font-size:.95rem;font-weight:600;color:var(--text)}.side-pane__close{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--muted);cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:.85rem;transition:background var(--transition),color var(--transition)}.side-pane__close:hover{background:var(--accent-dim);color:var(--accent)}.side-pane__body{flex:1;min-height:0;overflow-y:auto;padding:16px 20px 24px}.side-pane__body:has(.types-mgr-inline){display:flex;flex-direction:column;padding:0;overflow:hidden}.types-mgr-inline{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.mobile-drawer,.mobile-bottom-sheet,.bottom-nav{display:none}@media(max-width:768px){.resize-handle{display:none!important}.app-shell--mobile{flex-direction:column;padding:0;gap:0;position:relative}.app-shell--mobile>.sidebar,.app-shell--mobile>.sidebar.sidebar--collapsed{display:none}.app-shell--mobile>.inspector-column,.app-shell--mobile>.inspector--collapsed{display:none}.app-shell--mobile>.workspace{flex:1;min-height:0;border-radius:0;border:none;box-shadow:none;padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}.mobile-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:900;animation:fadeIn .2s ease}.mobile-drawer{display:flex;flex-direction:column;position:fixed;top:0;bottom:calc(56px + env(safe-area-inset-bottom,0px));width:100vw;max-width:100vw;z-index:950;background:var(--panel);box-shadow:4px 0 24px #00000080;transform:translate(-100%);transition:transform .25s cubic-bezier(.4,0,.2,1);overflow:hidden;padding-top:env(safe-area-inset-top,0px)}.mobile-drawer--left{left:0}.mobile-drawer--open{transform:translate(0)}.mobile-drawer .sidebar{width:100%!important;height:100%;border:none;border-radius:0;background:none}.mobile-drawer .sidebar__identity{display:none}.mobile-drawer .sidebar__tree-card .sidebar__shared-header{order:96;max-height:none;flex-shrink:0;border-top:1px solid var(--border);border-bottom:none;padding-top:8px}.mobile-drawer .sidebar__tree-card .sidebar-tabs{order:97;border-bottom:none;border-top:1px solid var(--border)}.mobile-drawer .sidebar-tab{min-height:48px;font-size:1rem}.mobile-drawer .sidebar-tab--icon{min-height:48px;padding:10px 14px}.mobile-drawer .sidebar-tab--icon svg{width:22px;height:22px}.mobile-drawer .sidebar__icon-btn,.mobile-drawer .sidebar__icon-btn--sm{min-width:44px;min-height:44px}.sidebar__search-bottom{order:98;flex-shrink:0;padding:8px 10px;border-top:1px solid var(--border);background:var(--panel)}.sidebar__search-bottom .search-input{width:100%}.sidebar__create-bar--mobile{order:99;margin-top:auto;padding:10px;border-top:1px solid var(--border);border-left:none;border-right:none;border-bottom:none;border-radius:0;background:var(--panel);box-shadow:none;justify-content:center;gap:8px}.sidebar__create-bar--mobile .sidebar__create-type-btn{width:48px;height:48px}.mobile-bottom-sheet{display:flex;flex-direction:column;position:fixed;left:0;right:0;bottom:0;height:55vh;max-height:70vh;z-index:950;background:var(--panel);border-radius:var(--radius) var(--radius) 0 0;box-shadow:0 -4px 24px #00000080;animation:slideUp .25s cubic-bezier(.4,0,.2,1);overflow:hidden;padding-bottom:env(safe-area-inset-bottom,0px)}.mobile-bottom-sheet__handle{width:36px;height:4px;margin:10px auto 6px;background:var(--muted);border-radius:2px;opacity:.4;flex-shrink:0}.mobile-bottom-sheet .inspector{width:100%!important;height:100%;border:none;border-radius:0;background:none;overflow-y:auto}.mobile-bottom-sheet .inspector--collapsed,.mobile-bottom-sheet .inspector__toggle{display:none}.bottom-nav{display:flex;align-items:center;justify-content:space-around;position:fixed;left:0;right:0;bottom:0;height:calc(56px + env(safe-area-inset-bottom,0px));background:var(--panel);border-top:1px solid var(--border-subtle);z-index:1100;padding-bottom:env(safe-area-inset-bottom,0px);box-shadow:0 -2px 12px #0000004d}.bottom-nav__btn .bottom-nav__svg line,.bottom-nav__btn .bottom-nav__svg path,.bottom-nav__btn .bottom-nav__svg polyline,.bottom-nav__btn .bottom-nav__svg polygon,.bottom-nav__btn .bottom-nav__svg rect,.bottom-nav__btn .bottom-nav__svg circle,.bottom-nav__btn .bottom-nav__svg ellipse{stroke:currentColor}.bottom-nav__btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex:1;height:100%;min-width:44px;min-height:44px;background:none;border:none;color:var(--muted);cursor:pointer;font-family:var(--font);transition:color var(--transition);-webkit-tap-highlight-color:transparent}.bottom-nav__btn:active,.bottom-nav__btn--active{color:var(--accent)}.bottom-nav__svg{width:20px;height:20px;flex-shrink:0}.bottom-nav__icon{font-size:1.2rem;line-height:1}.bottom-nav__label{font-size:.65rem;font-weight:500;letter-spacing:.02em}.mobile-fab{position:fixed;right:14px;width:44px;height:44px;border-radius:50%;background:var(--panel-2);color:var(--accent);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 12px #0006;cursor:pointer;z-index:100;-webkit-tap-highlight-color:transparent;transition:transform .15s ease,box-shadow .15s ease}.mobile-fab--inspector{bottom:132px}.mobile-fab--note-props{bottom:188px}.canvas-view__fab-wrap{bottom:72px}.mobile-fab:active{transform:scale(.92);box-shadow:0 1px 6px #0000004d}.note-mobile-sheet{z-index:960}.note-mobile-sheet__body{flex:1;min-height:0;overflow-y:auto;padding:0 14px 16px}.note-view__mode-fab{position:fixed;bottom:72px;right:14px;width:44px;height:44px;border-radius:50%;background:var(--accent);color:var(--bg);border:none;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 12px #0000004d;cursor:pointer;z-index:100;-webkit-tap-highlight-color:transparent;transition:transform .15s ease,box-shadow .15s ease}.note-view__mode-fab:active{transform:scale(.92)}.side-pane{width:95vw;max-width:95vw;max-height:85vh}.side-pane__body{overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:16px}.tree-item__btn,.tagged-item__btn{min-height:44px;padding:8px 12px}.sidebar__icon-btn,.sidebar__toggle{min-width:44px;min-height:44px}.search-input{min-height:44px;font-size:16px}.workspace{border-radius:0;border:none;padding-top:env(safe-area-inset-top,0px)}.breadcrumbs{padding:8px 12px;font-size:.78rem}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.workspace__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--muted);gap:12px}.workspace__empty-icon{font-size:3rem;opacity:.4}.workspace__welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:32px;gap:8px}.workspace__welcome-icon{opacity:.35;color:var(--accent);margin-bottom:8px}.workspace__welcome-title{font-size:1.3rem;font-weight:700;color:var(--text);margin:0}.workspace__welcome-text{font-size:.9rem;color:var(--muted);margin:0;max-width:360px}.workspace__welcome-hint{font-size:.8rem;color:var(--muted);opacity:.7;margin:4px 0 0;max-width:380px;line-height:1.5}.workspace__welcome-hint strong{color:var(--accent)}.workspace__welcome-btn{display:inline-flex;align-items:center;gap:8px;margin-top:16px;padding:10px 24px;border:1px solid var(--accent);border-radius:24px;background:var(--accent-dim);color:var(--accent);font-size:.88rem;font-weight:600;cursor:pointer;transition:background var(--transition),color var(--transition)}.workspace__welcome-btn:hover{background:var(--accent);color:var(--bg)}.graph-view{flex:1;min-height:0;border-radius:var(--radius-sm);overflow:hidden;position:relative}.graph-view--loading,.graph-view--error{display:flex;align-items:center;justify-content:center;height:100%;color:var(--muted)}.graph-view .react-flow__background{background:var(--panel)!important}.graph-view .react-flow__controls{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow)}.graph-view .react-flow__controls button{background:var(--panel-2);border-color:var(--border);color:var(--muted);width:28px;height:28px}.graph-view .react-flow__controls button:hover{background:var(--accent-dim);color:var(--accent)}.graph-view .react-flow__controls button svg{fill:currentColor}.graph-view .react-flow__edge-path{stroke:var(--border)!important;stroke-width:1.5}.graph-view .react-flow__minimap{background:var(--panel)!important;border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);overflow:hidden}.graph-view .react-flow__minimap-mask{fill:var(--accent-dim)!important}.graph-view .react-flow__minimap-node{fill:var(--muted)!important}.graph-node{background:#2dd4a80f;border:none;border-radius:var(--radius-sm);padding:10px 14px;min-width:120px;max-width:200px;cursor:pointer;transition:box-shadow var(--transition)}.graph-node:hover{box-shadow:0 0 16px #34d39940}.graph-node__title{font-size:.82rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.graph-node__tags{display:flex;flex-wrap:wrap;gap:3px;margin-top:6px}.graph-node__tag{font-size:.62rem;padding:1px 6px;background:var(--accent-dim);color:var(--accent);border-radius:10px;font-weight:500}.graph-handle{width:6px!important;height:6px!important;background:var(--border)!important;border:none!important}.graph-handle:hover{background:var(--accent)!important}.canvas-view{flex:1;display:flex;flex-direction:column;min-height:0;position:relative;background:var(--content-bg)}.canvas-view--loading,.canvas-view--error{display:flex;align-items:center;justify-content:center;height:100%;color:var(--muted)}.canvas-view__header{flex-shrink:0;margin-bottom:8px;padding:56px 16px 0}.canvas-view__title{font-size:1.1rem;font-weight:700;letter-spacing:-.02em}.canvas-view__options{position:absolute;top:12px;right:24px;z-index:11;display:flex;flex-direction:column;align-items:flex-end;gap:6px;pointer-events:auto}.canvas-view__opt-spacer{height:8px}.canvas-view__opt-btn{width:44px;height:44px;min-width:44px;min-height:44px;padding:0;box-sizing:border-box;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:50%;background:#10172299;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--muted);font-size:.95rem;cursor:pointer;transition:background var(--transition),color var(--transition),border-color var(--transition)}.canvas-view__opt-btn:hover{background:#101722d9;color:var(--text);border-color:var(--accent)}.canvas-view__opt-btn--active{background:#34d3992e;border-color:var(--accent);color:var(--accent)}.canvas-node__tags{display:flex;flex-wrap:wrap;gap:3px;margin-top:6px}.canvas-node__tag{font-size:.62rem;padding:1px 6px;background:var(--accent-dim);color:var(--accent);border-radius:10px;font-weight:500}.canvas-node--note-cover{padding:0;overflow:hidden;display:flex;flex-direction:column}.canvas-node__cover{width:100%;height:80px;object-fit:cover;border-radius:var(--radius-sm) var(--radius-sm) 0 0;flex-shrink:0}.canvas-node--note-cover .canvas-node__body{padding:8px 14px 10px}.canvas-node__body{min-width:0}.canvas-node__folder{display:flex;align-items:center;gap:3px;font-size:.62rem;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.7}.canvas-view__fab-wrap{position:absolute;bottom:24px;right:24px;z-index:11;display:flex;flex-direction:column;align-items:flex-end;gap:6px;pointer-events:auto}.canvas-view__fab{width:44px;height:44px;min-width:44px;min-height:44px;padding:0;box-sizing:border-box;border-radius:50%;border:1px solid var(--border);background:var(--accent);color:var(--bg);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 16px #0006;transition:transform var(--transition),box-shadow var(--transition)}.canvas-view__fab:hover{transform:scale(1.08);box-shadow:0 6px 24px #34d39959}.canvas-view__fab svg line,.canvas-view__fab svg path,.canvas-view__fab svg polyline,.canvas-view__fab svg circle{stroke:var(--bg)!important}.canvas-view__fab-menu{display:flex;flex-direction:column;gap:2px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 6px 20px #00000080;padding:4px 0;min-width:140px;position:absolute;bottom:52px;right:0}.canvas-view__fab-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 14px;border:none;background:none;color:var(--text);font-family:var(--font);font-size:.82rem;cursor:pointer;text-align:left}.canvas-view__fab-item:hover{background:var(--accent-dim)}.canvas-view__canvas{flex:1;min-height:0;border-radius:var(--radius-sm);overflow:hidden;position:relative}.canvas-view__back-row{flex-shrink:0;margin-bottom:8px}.canvas-view__back-btn{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--muted);font-family:var(--font);font-size:.8rem;padding:4px 12px;cursor:pointer;transition:background var(--transition),color var(--transition)}.canvas-view__back-btn:hover{background:var(--accent-dim);color:var(--accent)}.canvas-view__canvas .react-flow__background{background:var(--content-bg)!important}.canvas-view__canvas .react-flow__controls{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow)}.canvas-view__canvas .react-flow__controls button{background:var(--panel-2);border-color:var(--border);color:var(--muted);width:28px;height:28px}.canvas-view__canvas .react-flow__controls button:hover{background:var(--accent-dim);color:var(--accent)}.canvas-view__canvas .react-flow__controls button svg{fill:currentColor}.canvas-view__canvas .react-flow__minimap{background:var(--panel)!important;border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);overflow:hidden}.canvas-view__canvas .react-flow__minimap-mask{fill:var(--accent-dim)!important}.canvas-view__canvas .react-flow__minimap-node{fill:var(--muted)!important}.canvas-node{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;cursor:pointer;transition:box-shadow var(--transition),border-color var(--transition)}.canvas-node:hover{box-shadow:0 0 14px #34d39933}.canvas-node--note{border-left:none;background:#2dd4a814;min-width:140px;max-width:220px}.canvas-node--attachment{border-left:none;background:#38bdf814;min-width:100px;max-width:180px;text-align:center}.canvas-node--attachment-img{padding:0;overflow:hidden;display:flex;flex-direction:column}.canvas-node--attachment-img .canvas-node__thumb{max-height:none;width:100%;height:100%;flex:1;object-fit:cover;margin-bottom:0;border-radius:var(--radius-sm) var(--radius-sm) 0 0}.canvas-node__label-outside{font-size:.75rem;color:var(--muted);text-align:center;padding:4px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--panel-2)}.canvas-node--text{background:transparent;border:none;color:var(--muted);font-size:.82rem;max-width:240px}.canvas-node--group{background:#34d3990a;border:none;border-radius:var(--radius);padding:8px;position:relative}.canvas-node--canvas{border-left:none;background:#a78bfa14;min-width:140px;display:flex;align-items:center;gap:8px}.canvas-node--collection{border-left:none;background:#f59e0b14;min-width:140px;display:flex;align-items:center;gap:8px}.canvas-node__collection-icon{font-size:1.2rem}.canvas-node__title{font-size:.82rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.canvas-node__label{font-size:.75rem;color:var(--muted);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.canvas-node__thumb{width:100%;max-height:80px;object-fit:cover;border-radius:4px;margin-bottom:4px}.canvas-node__file-icon{font-size:1.5rem;display:block;margin-bottom:4px}.canvas-node__canvas-icon{font-size:1.2rem}.canvas-node__group-label{position:absolute;top:8px;left:12px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);opacity:.7}.canvas-context-menu{position:fixed;z-index:1000;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 6px 20px #00000080;padding:4px 0;min-width:160px}.canvas-context-menu__item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 14px;border:none;background:none;color:var(--text);font-family:var(--font);font-size:.82rem;cursor:pointer;text-align:left}.canvas-context-menu__item:hover{background:var(--accent-dim)}.canvas-context-menu__item--danger:hover{background:#ef444426;color:#ef4444}.react-flow__node.selected .canvas-node{outline:2px solid var(--accent);outline-offset:2px}.wb-toolbar{position:absolute;bottom:16px;left:50%;transform:translate(-50%);z-index:20;display:flex;gap:8px;align-items:center;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:6px 10px;box-shadow:var(--shadow)}.wb-toolbar__tools{display:flex;gap:2px}.wb-toolbar__btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--muted);cursor:pointer;transition:background var(--transition),color var(--transition)}.wb-toolbar__btn:hover{background:var(--surface);color:var(--text)}.wb-toolbar__btn--active{background:var(--accent-dim);color:var(--accent)}.wb-toolbar__colors{display:flex;gap:4px;padding-left:8px;border-left:1px solid var(--border)}.wb-toolbar__color{width:20px;height:20px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:border-color var(--transition),transform var(--transition)}.wb-toolbar__color:hover{transform:scale(1.15)}.wb-toolbar__color--active{border-color:var(--text)}.wb-shape{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-width:60px;min-height:40px;cursor:pointer;transition:box-shadow var(--transition)}.wb-shape:hover{box-shadow:0 0 14px #34d3992e}.wb-shape--rect{border:2px solid var(--accent);border-radius:var(--radius-sm);background:#34d3990f}.wb-shape--ellipse{border:2px solid var(--accent);border-radius:50%;background:#34d3990f}.wb-shape--diamond{border:2px solid var(--accent);background:#34d3990f;transform:rotate(45deg)}.wb-shape--diamond .wb-shape__label{transform:rotate(-45deg)}.wb-shape--sticky{border:none;border-radius:2px;background:#fbbf24;color:#1a1a2e;padding:10px;box-shadow:2px 3px 8px #00000040;align-items:flex-start;justify-content:flex-start}.wb-shape--sticky .wb-shape__label,.wb-shape--sticky .wb-shape__label-input{color:#1a1a2e}.wb-shape__label{font-size:13px;color:var(--text);text-align:center;word-break:break-word;-webkit-user-select:none;user-select:none;pointer-events:auto}.wb-shape__label-input{font-size:13px;color:var(--text);text-align:center;background:transparent;border:none;outline:none;resize:none;width:100%;font-family:inherit}.wb-handle{width:8px!important;height:8px!important;background:var(--panel-2)!important;border:2px solid var(--accent)!important;border-radius:50%!important;opacity:0;transition:opacity var(--transition)}.react-flow__node:hover .wb-handle,.react-flow__node.selected .wb-handle{opacity:1}.wb-resize-line{border-color:var(--accent)!important}.wb-resize-handle{width:8px!important;height:8px!important;background:var(--accent)!important;border:none!important;border-radius:2px!important}.react-flow__node.selected .wb-shape{outline:2px solid var(--accent);outline-offset:2px}.wb-freehand-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10}.wb-freehand-overlay--active{pointer-events:all;cursor:crosshair}.canvas-list{max-width:780px;margin:0 auto;width:100%}.canvas-list--loading,.canvas-list--error{display:flex;align-items:center;justify-content:center;height:100%;color:var(--muted)}.canvas-list__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.canvas-list__title{font-size:1.3rem;font-weight:700;letter-spacing:-.02em}.canvas-list__new-btn{padding:6px 16px;background:var(--accent);color:#0a0d12;border:none;border-radius:var(--radius-sm);font-family:var(--font);font-size:.82rem;font-weight:600;cursor:pointer;transition:opacity var(--transition)}.canvas-list__new-btn:hover{opacity:.85}.canvas-list__new-btn:disabled{opacity:.5;cursor:default}.canvas-list__empty{text-align:center;padding:48px 0;color:var(--muted)}.canvas-list__empty-icon{font-size:3rem;display:block;margin-bottom:12px;opacity:.5}.canvas-list__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.canvas-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 16px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;font-family:var(--font);color:var(--text);text-align:center;transition:background var(--transition),border-color var(--transition),box-shadow var(--transition)}.canvas-card:hover{background:var(--panel);border-color:var(--accent);box-shadow:0 0 20px #34d3991f}.canvas-card__icon{font-size:2rem}.canvas-card__name{font-size:.9rem;font-weight:600}.canvas-card__meta{font-size:.72rem;color:var(--muted)}.sidebar__content{flex:1;overflow-y:auto;overflow-x:hidden;min-height:0;padding:0 4px 4px}.sidebar__tags{flex-shrink:0;overflow-y:auto;max-height:30%;padding:4px 0}.sidebar__attachments{flex-shrink:0;display:flex;flex-direction:column;max-height:40%;min-height:28px}.sidebar__attachments .sidebar__section-title--toggle{padding:6px 12px;margin-bottom:0}.sidebar__attachments-list{overflow-y:auto;overflow-x:hidden;flex:1;min-height:0;display:flex;flex-direction:column;gap:4px;padding:4px 8px 8px}.sidebar-tabs{display:flex;flex-shrink:0;align-items:center;gap:4px;padding:6px 8px;background:var(--panel);border-bottom:1px solid var(--border-subtle)}.sidebar-tab{flex:1;padding:6px 12px;background:#ffffff0d;border:1px solid transparent;border-radius:20px;color:var(--muted);font-family:var(--font);font-size:.87rem;font-weight:500;cursor:pointer;letter-spacing:.02em;text-align:center;white-space:nowrap;transition:color var(--transition),background var(--transition),border-color var(--transition);-webkit-tap-highlight-color:transparent}.sidebar-tab:hover{background:var(--accent-dim);color:var(--text)}.sidebar-tab--active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);font-weight:600}.sidebar-tab--icon{padding:6px 10px;display:inline-flex;align-items:center;justify-content:center}.sidebar-tab-panel{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.sidebar-tab-panel--hidden{display:none}.sidebar__shared-header{flex-shrink:1;min-height:0;max-height:40%;overflow-y:auto;padding:6px 8px 2px;display:flex;flex-direction:column;gap:2px}.attachments-panel__header{display:flex;align-items:center;gap:4px;padding:6px 10px;border-bottom:1px solid var(--border);justify-content:flex-end}.attachments-view-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;flex-shrink:0;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--muted);cursor:pointer;transition:background var(--transition),color var(--transition),border-color var(--transition)}.attachments-view-btn:hover{background:var(--accent-dim);color:var(--accent);border-color:var(--border)}.attachments-view-btn--active{background:var(--accent-dim);color:var(--accent);border-color:var(--accent)}.attachment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:6px;padding:8px}.attachment-grid-card{display:flex;flex-direction:column;align-items:center;gap:5px;padding:8px 4px 6px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;color:var(--text);font-family:var(--font);transition:background var(--transition),border-color var(--transition),color var(--transition);text-align:center}.attachment-grid-card:hover{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.attachment-grid-card__thumb{width:100%;aspect-ratio:1;object-fit:cover;border-radius:4px;background:var(--bg);display:block}.attachment-grid-card__icon{width:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;color:var(--muted)}.attachment-grid-card__name{font-size:.62rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;color:inherit}.attachment-card{display:flex;align-items:center;gap:6px;padding:3px 8px;border:none;border-radius:6px;background:none;cursor:pointer;transition:background var(--transition),color var(--transition);text-align:left;width:100%;color:var(--text);font-family:var(--font);font-size:.82rem;min-height:30px}.attachment-card-wrapper{display:flex;align-items:center;position:relative}.attachment-card-wrapper .attachment-card{flex:1;min-width:0}.attachment-grid-card-wrapper{position:relative}.attachment-card:hover{background:var(--accent-dim);color:var(--accent)}.att-inline-actions{display:flex;align-items:center;gap:1px;flex-shrink:0;opacity:0;transition:opacity var(--transition)}.attachment-card-wrapper:hover .att-inline-actions,.att-folder-row:hover .att-inline-actions,.att-inline-actions:focus-within{opacity:1}.att-inline-actions--grid{position:absolute;top:2px;right:2px;gap:2px}.attachment-grid-card-wrapper:hover .att-inline-actions--grid{opacity:1}.att-inline-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:4px;background:none;color:var(--muted);cursor:pointer;padding:0;transition:background var(--transition),color var(--transition)}.att-inline-btn:hover{background:#ffffff1a;color:var(--text)}.att-inline-btn--danger:hover{background:#ef444426;color:#ef4444}.att-inline-actions .tree-item__menu-btn{display:flex}.attachment-card__thumb{width:20px;height:20px;border-radius:3px;object-fit:cover;flex-shrink:0;background:var(--panel-2)}.attachment-card__icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--muted)}.attachment-card__name{font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.att-breadcrumb{display:flex;align-items:center;padding:4px 10px;font-size:.72rem;color:var(--muted);border-bottom:1px solid var(--border);flex-wrap:wrap;gap:1px}.att-breadcrumb__btn{background:none;border:none;color:var(--accent);cursor:pointer;font-size:.72rem;font-family:var(--font);padding:1px 3px;border-radius:3px}.att-breadcrumb__btn:hover{background:var(--accent-dim)}.att-breadcrumb__sep{color:var(--muted);margin:0 1px}.att-new-folder-row{display:flex;align-items:center;gap:6px;padding:4px 8px;color:var(--muted)}.att-new-folder-input{flex:1;background:var(--panel-2);border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--text);font-size:.82rem;font-family:var(--font);padding:3px 6px;outline:none}.att-select-check{width:18px;height:18px;flex-shrink:0;border:1.5px solid rgba(255,255,255,.35);border-radius:4px;background:#ffffff0f;cursor:pointer;display:flex;align-items:center;justify-content:center;color:transparent;margin-left:4px;transition:background var(--transition),border-color var(--transition),color var(--transition)}.att-select-check--on{background:var(--accent);border-color:var(--accent);color:var(--bg)}.att-select-check--grid{position:absolute;top:4px;left:4px;z-index:2}.att-folder-row{display:flex;align-items:center;gap:4px;padding:3px 4px;cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition)}.att-folder-row:hover{background:var(--panel-hover, rgba(255,255,255,.05))}.att-folder-row--drag-over{background:var(--accent-dim);outline:1.5px solid var(--accent);outline-offset:-1.5px}.att-folder-chevron{background:none;border:none;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:transform .15s ease;flex-shrink:0;width:16px;height:16px}.att-folder-chevron--open{transform:rotate(90deg)}.att-folder-icon{display:flex;align-items:center;flex-shrink:0;color:var(--muted)}.att-folder-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none}.attachment-card-wrapper--selected .attachment-card{background:var(--accent-dim)}.attachment-grid-card-wrapper--selected .attachment-grid-card{border-color:var(--accent);background:var(--accent-dim)}.att-move-folder-list{display:flex;flex-direction:column;gap:2px;max-height:250px;overflow-y:auto;margin:8px 0}.att-move-folder-btn{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;font-size:.82rem;font-family:var(--font);transition:background var(--transition),border-color var(--transition)}.att-move-folder-btn:hover{background:var(--accent-dim);border-color:var(--accent)}.sidebar__filters{flex-shrink:0;overflow-y:auto;max-height:40%;border-top:1px solid var(--border)}.sidebar__filter-section{padding-top:8px}.sidebar__filter-count{background:var(--accent);color:#0a0d12;font-size:.6rem;font-weight:700;padding:1px 5px;border-radius:8px;margin-left:6px}.filter-cloud{display:flex;flex-wrap:wrap;gap:4px}.filter-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:#ffffff0a;border:1px solid var(--border);border-radius:12px;color:var(--muted);font-family:var(--font);font-size:.8rem;cursor:pointer;transition:background var(--transition),color var(--transition),border-color var(--transition)}.filter-pill:hover{background:var(--accent-dim);color:var(--text);border-color:var(--accent)}.filter-pill--active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);font-weight:600}.filter-pill__count{font-size:.6rem;opacity:.7}.sidebar__clear-filters{padding:8px 16px 12px}.clear-filters-btn{width:100%;padding:5px 10px;background:none;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--muted);font-family:var(--font);font-size:.75rem;cursor:pointer;transition:background var(--transition),color var(--transition),border-color var(--transition)}.clear-filters-btn:hover{background:#f871711a;color:var(--danger);border-color:var(--danger)}.settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:settingsFadeIn .15s ease}@keyframes settingsFadeIn{0%{opacity:0}to{opacity:1}}.settings-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 24px 60px #00000080;width:460px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column;animation:settingsSlideIn .2s ease}@keyframes settingsSlideIn{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.settings-panel__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 12px;border-bottom:1px solid var(--border);flex-shrink:0}.settings-panel__title{font-size:1.1rem;font-weight:700;color:var(--text)}.settings-panel__close{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--muted);cursor:pointer;width:30px;height:30px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;transition:background var(--transition),color var(--transition)}.settings-panel__close:hover{background:#f8717126;color:var(--danger)}.settings-panel__body{flex:1;overflow-y:auto;padding:20px 24px 24px}.settings-section{margin-bottom:24px}.settings-section:last-child{margin-bottom:0}.settings-section--filled{background:#ffffff08;border:1px solid var(--border);border-radius:var(--radius);padding:16px}.settings-section__title{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:12px}.settings-account-row{display:flex;align-items:center;justify-content:space-between}.settings-account-label{font-size:.85rem;color:var(--text)}.settings-btn--danger{display:inline-flex;align-items:center;gap:6px;color:var(--danger, #f87171);border-color:var(--danger, #f87171)}.settings-btn--danger:hover{background:#f871711f}.settings-field{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.settings-field:last-child{margin-bottom:0}.settings-field__label{font-size:.85rem;color:var(--text)}.settings-field__value{font-size:.8rem;color:var(--muted);min-width:40px;text-align:right}.settings-range{width:160px;accent-color:var(--accent);cursor:pointer}.settings-select{background:var(--surface, var(--panel-2));border:1px solid var(--border-subtle, var(--border));border-radius:var(--radius-sm);color:var(--text);font-family:var(--font);font-size:.85rem;padding:6px 10px;cursor:pointer;outline:none;min-width:160px}.settings-select:focus{border-color:var(--accent)}.settings-color-field{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.settings-color-field:last-child{margin-bottom:0}.settings-color-field__label{font-size:.85rem;color:var(--text)}.settings-color-field__controls{display:flex;align-items:center;gap:8px}.settings-color-picker{width:32px;height:32px;border:2px solid var(--border);border-radius:6px;cursor:pointer;background:none;padding:0}.settings-color-picker::-webkit-color-swatch-wrapper{padding:2px}.settings-color-picker::-webkit-color-swatch{border:none;border-radius:3px}.settings-color-text{width:80px;padding:4px 8px;background:#00000040;border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:var(--font-mono);font-size:.75rem;text-align:center;outline:none;transition:border-color var(--transition)}.settings-color-text:focus{border-color:var(--accent)}.settings-presets{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.settings-preset-card{display:flex;flex-direction:column;gap:4px}.settings-preset{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 14px;background:#0003;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font);font-size:.75rem;color:var(--muted);transition:border-color var(--transition),color var(--transition),background var(--transition)}.settings-preset:hover{border-color:var(--accent);color:var(--text);background:#0000004d}.settings-preset__swatch{width:36px;height:24px;border-radius:4px;border:none}.settings-preset__name{font-size:.72rem}.settings-preset__name-input{width:70px;background:#0000004d;border:none;border-radius:3px;color:var(--text);font:inherit;font-size:.72rem;text-align:center;padding:1px 4px;outline:none}.settings-preset-actions{display:flex;gap:2px;justify-content:center}.settings-preset-action{background:none;border:none;cursor:pointer;font-size:.65rem;padding:2px 4px;border-radius:3px;opacity:.6;transition:opacity .15s ease,background .15s ease}.settings-preset-action:hover{opacity:1;background:#ffffff0f}.settings-preset-action--danger:hover{background:#f8717126}.settings-btn{padding:6px 14px;border:none;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent);font:inherit;font-size:.78rem;cursor:pointer;transition:background var(--transition),color var(--transition)}.settings-btn:hover{background:color-mix(in srgb,var(--accent) 25%,transparent);color:var(--text)}.settings-btn:disabled{opacity:.4;cursor:not-allowed}.settings-btn--secondary{border-color:var(--border);background:#0003;color:var(--muted)}.settings-btn--secondary:hover{border-color:var(--accent);color:var(--text);background:#0000004d}.settings-section__desc{font-size:.78rem;color:var(--muted);margin-bottom:10px}.settings-section__desc code{font-family:var(--font-mono);font-size:.75rem;color:var(--text);background:#0000004d;padding:2px 6px;border-radius:3px}.settings-vault-row{display:flex;gap:8px;align-items:center;margin-bottom:8px}.settings-vault-input{flex:1;padding:6px 10px;background:#00000040;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font-mono);font-size:.78rem;outline:none;transition:border-color var(--transition)}.settings-vault-input:focus{border-color:var(--accent)}.settings-vault-status{font-size:.78rem;margin:6px 0 0;line-height:1.4}.settings-vault-status--ok{color:var(--accent)}.settings-vault-status--err{color:var(--danger, #f87171)}.vault-info-row{display:flex;align-items:center;gap:10px}.vault-info-icon{flex-shrink:0;color:var(--accent);display:flex;align-items:center}.vault-info-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.vault-info-name{font-weight:700;font-size:.9rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vault-info-path{font-family:var(--font-mono);font-size:.7rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vault-info-actions{display:flex;gap:6px;flex-shrink:0}.vault-rename-form{margin-top:10px}.settings-file-input{display:block;width:100%;font-size:.78rem;color:var(--text);margin-top:4px}.settings-file-input::file-selector-button{padding:4px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font);font-size:.78rem;cursor:pointer;margin-right:8px;transition:background var(--transition),color var(--transition)}.settings-file-input::file-selector-button:hover{background:var(--accent-dim);color:var(--accent)}.settings-browse{margin-top:10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#0003;overflow:hidden}.settings-browse__header{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border);background:#00000026}.settings-browse__path{flex:1;font-family:var(--font-mono);font-size:.72rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-browse__up,.settings-browse__close{background:none;border:1px solid var(--border);border-radius:3px;color:var(--muted);cursor:pointer;font-size:.72rem;padding:2px 8px;transition:border-color var(--transition),color var(--transition)}.settings-browse__up:hover,.settings-browse__close:hover{border-color:var(--accent);color:var(--text)}.settings-browse__list{max-height:200px;overflow-y:auto;padding:4px 0}.settings-browse__empty{padding:12px;text-align:center;color:var(--muted);font-size:.78rem}.settings-browse__item{padding:0 4px}.settings-browse__folder{display:block;width:100%;text-align:left;background:none;border:none;padding:5px 12px;color:var(--text);font:inherit;font-size:.78rem;cursor:pointer;border-radius:3px;transition:background var(--transition)}.settings-browse__folder:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}.settings-browse__hint{padding:6px 12px;font-size:.68rem;color:var(--muted);border-top:1px solid var(--border);text-align:center}.settings-version-info{display:flex;flex-direction:column;gap:6px}.settings-version-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0}.settings-version-label{font-size:.78rem;color:var(--muted)}.settings-version-value{font-size:.78rem;font-family:var(--font-mono);color:var(--text)}.collection-view{height:100%;display:flex;flex-direction:column;background:var(--content-bg);border-radius:var(--radius);overflow:hidden}.collection-view--loading,.collection-view--error{display:flex;align-items:center;justify-content:center;height:100%}.collection-view__header{display:flex;align-items:center;justify-content:space-between;padding:56px 20px 16px;border-bottom:1px solid var(--border);gap:12px;flex-shrink:0}.collection-view__title{font-size:1.1rem;font-weight:600;color:var(--text)}.collection-view__actions{display:flex;align-items:center;gap:8px}.collection-view__mode-badge{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 10px;font-size:.75rem;color:var(--muted);cursor:pointer;transition:var(--transition)}.collection-view__mode-badge:hover{color:var(--accent);border-color:var(--accent)}.collection-view__view-btn,.collection-view__edit-btn{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 10px;font-size:.8rem;color:var(--muted);cursor:pointer;transition:var(--transition)}.collection-view__view-btn:hover,.collection-view__edit-btn:hover{color:var(--accent);border-color:var(--accent)}.collection-view__sort-wrap{position:relative}.collection-view__sort-menu{position:absolute;top:100%;right:0;z-index:20;margin-top:4px;min-width:160px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 0;box-shadow:0 8px 24px #0006}.collection-view__sort-option{display:flex;align-items:center;gap:6px;width:100%;padding:6px 12px;background:none;border:none;color:var(--text);font-size:.8rem;cursor:pointer;text-align:left}.collection-view__sort-option:hover{background:var(--accent-dim);color:var(--accent)}.collection-view__sort-option--active{color:var(--accent);font-weight:600}.collection-view__sort-divider{height:1px;background:var(--border);margin:4px 0}.collection-card__drag-handle,.collection-list-item__drag-handle,.collection-table__drag-handle{color:var(--muted);font-size:.9rem;cursor:grab;-webkit-user-select:none;user-select:none;opacity:.5;transition:var(--transition)}.collection-card:hover .collection-card__drag-handle,.collection-list-item:hover .collection-list-item__drag-handle,.collection-table__row:hover .collection-table__drag-handle{opacity:1;color:var(--accent)}.collection-card--dragging,.collection-list-item--dragging,.collection-table__row--dragging{opacity:.4}.collection-card--over,.collection-table__row--over{box-shadow:0 -2px 0 0 var(--accent) inset}.collection-list-item--over{border-color:var(--accent);box-shadow:0 -2px 0 0 var(--accent) inset}.collection-table__drag-cell{width:24px;text-align:center}.collection-view__empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--muted)}.collection-view__empty-icon{font-size:2.5rem;opacity:.5}.collection-view__footer{padding:8px 20px;font-size:.75rem;color:var(--muted);border-top:1px solid var(--border);flex-shrink:0}.collection-view__rule-editor{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:10px;background:var(--panel-2)}.rule-editor__conjunction{display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--muted)}.rule-editor__conjunction select{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:4px 8px;font-size:.8rem}.rule-editor__row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.rule-editor__row select,.rule-editor__row input{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:4px 8px;font-size:.8rem}.rule-editor__row input{flex:1;min-width:80px}.rule-editor__remove{background:none;border:none;color:var(--danger);cursor:pointer;font-size:.9rem;padding:2px 6px}.rule-editor__actions{display:flex;gap:8px}.rule-editor__add,.rule-editor__save{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px 12px;font-size:.8rem;color:var(--muted);cursor:pointer;transition:var(--transition)}.rule-editor__add:hover{color:var(--text)}.rule-editor__save{background:var(--accent-dim);color:var(--accent);border-color:var(--accent)}.rule-editor__save:hover{background:var(--accent);color:var(--bg)}.collection-view__cards{flex:1;overflow-y:auto;padding:16px 20px;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;align-content:start}.collection-card{position:relative;background:#0003;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;text-align:left;color:var(--text);transition:var(--transition);display:flex;flex-direction:column}.collection-card:hover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.collection-card__cover{width:100%;height:120px;object-fit:cover;object-position:center top}.collection-card--portrait{max-width:160px}.collection-card--portrait .collection-card__cover{height:200px}.collection-card__body{padding:10px 12px;display:flex;flex-direction:column;gap:6px}.collection-card__title{font-weight:500;font-size:.85rem}.collection-card__tags{display:flex;gap:4px;flex-wrap:wrap}.collection-card__tag{background:var(--accent-dim);color:var(--accent);padding:1px 6px;border-radius:4px;font-size:.7rem}.collection-card__remove{position:absolute;top:4px;right:4px;background:#0009;border:none;color:var(--danger);cursor:pointer;border-radius:50%;width:20px;height:20px;font-size:.7rem;display:flex;align-items:center;justify-content:center;opacity:0;transition:var(--transition)}.collection-card:hover .collection-card__remove{opacity:1}.collection-card--add{border:2px dashed var(--border);background:transparent;display:flex;align-items:center;justify-content:center}.collection-card--add:hover{border-color:var(--accent);background:var(--accent-dim)}.collection-card__add-icon{color:var(--muted);margin-bottom:4px}.collection-card--add:hover .collection-card__add-icon{color:var(--accent)}.collection-view__table-wrap{flex:1;overflow:auto;padding:0 20px 16px}.collection-table{width:100%;border-collapse:collapse;font-size:.82rem}.collection-table th{text-align:left;padding:10px 8px;border-bottom:1px solid var(--border);color:var(--muted);font-weight:500;position:sticky;top:0;background:var(--panel)}.collection-table__row{cursor:pointer;transition:var(--transition);min-height:48px;background:#0003}.collection-table__row:hover{background:var(--accent-dim)}.collection-table__row td{padding:8px;border-bottom:1px solid var(--border);color:var(--text);height:48px}.collection-table__title{font-weight:500}.collection-table__cover-cell{width:60px;padding:4px 8px!important;vertical-align:middle}.collection-table__cover-cell--widescreen{width:108px}.collection-table__cover-cell--widescreen .collection-table__cover{width:96px;height:54px}.collection-table__cover-cell--portrait{width:60px}.collection-table__cover-cell--portrait .collection-table__cover{width:48px;height:72px}.collection-table__cover{object-fit:cover;object-position:center top;border-radius:4px;vertical-align:middle;width:28px;height:28px}.collection-table__cover-placeholder{font-size:.9rem}.collection-table__remove{background:none;border:none;color:var(--danger);cursor:pointer;font-size:.8rem}.collection-table__row--add{cursor:pointer;color:var(--muted)}.collection-table__row--add:hover{background:var(--accent-dim);color:var(--accent)}.collection-view__list{flex:1;overflow-y:auto;padding:8px 20px}.collection-list-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius-sm);background:#0003;border:1px solid var(--border);color:var(--text);margin-bottom:4px;cursor:pointer;width:100%;text-align:left;transition:var(--transition)}.collection-list-item:hover{background:var(--accent-dim)}.collection-list-item__icon{font-size:.9rem}.collection-list-item__cover{width:24px;height:24px;object-fit:cover;border-radius:4px;flex-shrink:0}.collection-list-item__title{font-weight:500;font-size:.85rem;flex:1}.collection-list-item__path{color:var(--muted);font-size:.75rem}.collection-list-item__remove{background:none;border:none;color:var(--danger);cursor:pointer;font-size:.8rem;opacity:0;transition:var(--transition)}.collection-list-item:hover .collection-list-item__remove{opacity:1}.collection-list-item--add{border-style:dashed;background:transparent;color:var(--muted)}.collection-list-item--add:hover{border-color:var(--accent);background:var(--accent-dim);color:var(--accent)}.sidebar__section-title--actions{display:flex;align-items:center;justify-content:space-between}.sidebar__section-title--toggle{display:flex;align-items:center;gap:6px;background:none;border:none;color:var(--muted);cursor:pointer;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:0;margin-bottom:8px;width:100%}.sidebar__section-title--toggle:hover{color:var(--text)}.sidebar__section-chevron{font-size:.8rem;width:12px;text-align:center;flex-shrink:0}.sidebar__inline-btn{background:none;border:none;color:var(--muted);cursor:pointer;font-size:1rem;padding:0 4px;transition:var(--transition)}.sidebar__inline-btn:hover{color:var(--accent)}.tag-editor{display:flex;flex-wrap:wrap;gap:4px;cursor:pointer;min-height:28px;align-items:center}.tag-editor--display{padding:2px 0}.tag-editor--editing{position:relative;flex-direction:column}.tag-editor__tags{display:flex;flex-wrap:wrap;gap:4px;align-items:center;width:100%}.tag-editor__input{background:transparent;border:none;color:var(--text);font-size:.75rem;outline:none;flex:1;min-width:60px;padding:2px 4px}.tag-editor__placeholder{color:var(--muted);font-size:.75rem;cursor:pointer}.tag-pill--removable{cursor:default;gap:2px}.tag-pill__remove{background:none;border:none;color:#0a0d12;font-size:.7rem;cursor:pointer;padding:0 2px;line-height:1;opacity:.6}.tag-pill__remove:hover{opacity:1}.tag-editor__suggestions{position:absolute;top:100%;left:0;right:0;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);list-style:none;max-height:160px;overflow-y:auto;z-index:100;margin-top:2px}.tag-editor__suggestion{padding:5px 10px;font-size:.78rem;cursor:pointer;color:var(--text)}.tag-editor__suggestion:hover,.tag-editor__suggestion--active{background:var(--accent-dim);color:var(--accent)}.properties-panel{display:flex;flex-direction:column;gap:8px}.property-row{display:flex;align-items:center;gap:6px;font-size:.78rem}.property-row__label{color:var(--muted);font-weight:500;min-width:80px;flex-shrink:0}.property-row__value{flex:1;min-width:0;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px 8px;color:var(--text);font-size:.78rem;outline:none;transition:border-color var(--transition)}.property-row__value:focus{border-color:var(--accent)}.property-row__value--bool{background:none;border:none;padding:0;width:16px;height:16px;flex:0;accent-color:var(--accent)}.property-row__delete,.property-row__confirm{background:none;border:none;color:var(--muted);cursor:pointer;font-size:.85rem;padding:2px 4px;border-radius:var(--radius-sm);line-height:1;flex-shrink:0;transition:color var(--transition),background var(--transition)}.property-row__delete:hover{color:#f87171;background:#f871711a}.property-row__confirm:hover{color:var(--accent);background:#34d3991a}.property-row--new{gap:6px;flex-wrap:wrap}.property-row__key-input{min-width:80px;max-width:80px;flex:0 0 80px}.property-row__key-select{min-width:80px;max-width:80px;flex:0 0 80px;cursor:pointer;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.inspector__add-btn{background:none;border:1px dashed var(--border);border-radius:var(--radius-sm);color:var(--muted);font-size:.75rem;padding:4px 10px;cursor:pointer;width:100%;text-align:left;transition:color var(--transition),border-color var(--transition)}.inspector__add-btn:hover{color:var(--accent);border-color:var(--accent)}.type-picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center}.type-picker{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:24px;min-width:360px;max-width:480px;max-height:min(80vh,600px);display:flex;flex-direction:column;box-shadow:var(--shadow)}.type-picker__title{font-size:1rem;font-weight:600;color:var(--text);margin-bottom:6px}.type-picker__subtitle{font-size:.78rem;color:var(--muted);margin-bottom:16px}.type-picker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-bottom:16px;max-height:40vh;overflow-y:auto;padding-right:4px}.type-picker__item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 10px;background:var(--panel-2);border:2px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:border-color var(--transition),background var(--transition)}.type-picker__item:hover{background:var(--accent-dim);border-color:var(--accent)}.type-picker__item--selected{border-color:var(--accent);background:var(--accent-dim)}.type-picker__item--add{border:none;background:var(--accent-dim)}.type-picker__item--add:hover{background:#2dd4a82e}.type-picker__icon{font-size:1.5rem}.type-picker__name{font-size:.78rem;font-weight:500;color:var(--text)}.type-picker__title-input{width:100%;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;color:var(--text);font-size:.88rem;outline:none;margin-bottom:16px}.type-picker__title-input:focus{border-color:var(--accent)}.type-picker__actions{display:flex;gap:8px;justify-content:flex-end}.type-picker__btn{padding:6px 14px;border:none;border-radius:var(--radius-sm);font-size:.8rem;cursor:pointer;transition:background var(--transition)}.type-picker__btn--primary{background:var(--accent);color:#0a0d12;font-weight:600}.type-picker__btn--primary:hover{opacity:.9}.type-picker__btn--cancel{background:var(--panel-2);color:var(--muted)}.type-picker__btn--cancel:hover{color:var(--text)}.type-picker__btn--danger{background:var(--danger, #f87171);color:#0a0d12;font-weight:600}.type-picker__btn--danger:hover{opacity:.85}@media(max-width:768px){.type-picker-overlay{align-items:flex-end;padding:0}.type-picker{min-width:0;max-width:100%;width:100%;max-height:85vh;border-radius:var(--radius) var(--radius) 0 0;padding:20px 16px env(safe-area-inset-bottom,16px)}.type-picker__grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));max-height:50vh}}.doc-type-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--panel-2);border:1px solid var(--border);border-radius:12px;font-size:.72rem;color:var(--muted)}.doc-type-badge__icon{font-size:.78rem}.prop-defs-manager{display:flex;flex-direction:column;gap:10px}.prop-def-row{display:flex;align-items:center;gap:6px;font-size:.78rem}.prop-def-row__name{flex:1;color:var(--text);font-weight:500}.prop-def-row__type{color:var(--muted);font-size:.72rem;background:var(--panel-2);padding:2px 6px;border-radius:4px}.prop-def-row__delete{background:none;border:none;color:var(--muted);cursor:pointer;font-size:.8rem;padding:2px}.prop-def-row__delete:hover{color:var(--danger)}.prop-def-add{display:flex;gap:6px;align-items:center}.prop-def-add__input,.prop-def-add__select{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 8px;color:var(--text);font-size:.78rem;outline:none}.prop-def-add__input:focus,.prop-def-add__select:focus{border-color:var(--accent)}.prop-def-add__btn{background:var(--accent);color:#0a0d12;border:none;border-radius:var(--radius-sm);padding:4px 10px;font-size:.78rem;cursor:pointer;font-weight:600}.prop-def-add__btn:hover{opacity:.9}.settings-panel--wide{max-width:680px}.types-mgr__tabs{display:flex;gap:0;border-bottom:1px solid var(--border);padding:0 20px}.types-mgr__tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--muted);padding:10px 16px;font-size:.85rem;cursor:pointer;transition:color .15s,border-color .15s}.types-mgr__tab:hover{color:var(--text)}.types-mgr__tab--active{color:var(--accent);border-bottom-color:var(--accent)}.types-mgr__hint{color:var(--muted);font-size:.78rem;margin:0 0 12px;line-height:1.4}.doc-types-manager{display:flex;flex-direction:column;gap:12px}.doc-type-card{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px}.doc-type-card__header{display:flex;align-items:center;gap:8px}.doc-type-card__icon{font-size:1.2rem}.doc-type-card__name{flex:1;font-weight:600;font-size:.88rem;color:var(--text)}.doc-type-card__actions{display:flex;gap:2px}.doc-type-card__meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.doc-type-card__props{color:var(--muted);font-size:.74rem}.doc-type-card__tags{display:flex;gap:4px}.doc-type-form{background:var(--panel-2);border:none;border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:10px}.doc-type-form__row{display:flex;align-items:center;gap:8px}.doc-type-form__row--col{flex-direction:column;align-items:stretch}.doc-type-form__label{font-size:.78rem;color:var(--muted);font-weight:500;min-width:90px;flex-shrink:0}.doc-type-form__icon-input{font-size:1.1rem}.doc-type-form__prop-chips{display:flex;flex-wrap:wrap;gap:6px}.doc-type-form__prop-chip{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:3px 10px;font-size:.74rem;color:var(--text);cursor:pointer;transition:background .15s,border-color .15s}.doc-type-form__prop-chip:hover{border-color:var(--accent)}.doc-type-form__prop-chip--selected{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.doc-type-form__textarea{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;color:var(--text);font-size:.8rem;font-family:var(--font-mono, monospace);resize:vertical;outline:none;line-height:1.5}.doc-type-form__textarea:focus{border-color:var(--accent)}.doc-type-form__actions{display:flex;justify-content:flex-end;gap:8px;padding-top:4px}.doc-type-form__orient-toggle{display:flex;gap:4px}.doc-type-form__orient-btn{background:var(--panel-2);border:1px solid var(--border-subtle);color:var(--muted);font-size:.78rem;padding:4px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition)}.doc-type-form__orient-btn:hover{color:var(--text);border-color:var(--accent)}.doc-type-form__orient-btn--active{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.doc-types-manager__add{background:none;border:none;border-radius:var(--radius);padding:12px;color:var(--muted);font-size:.82rem;cursor:pointer;transition:color .15s}.doc-types-manager__add:hover{color:var(--accent)}.vault-root-view{flex:1;min-height:0}.vault-root-node{display:flex;flex-direction:column;gap:4px;background:#2dd4a80f;border:none;border-radius:var(--radius-sm);padding:6px 12px;cursor:pointer;min-width:80px;max-width:180px;transition:box-shadow var(--transition)}.vault-root-node__header{display:flex;align-items:center;gap:6px}.vault-root-node:hover{box-shadow:0 0 12px #34d39933}.vault-root-node--canvas{border-left-color:#f59e0b}.vault-root-node--canvas:hover{box-shadow:0 0 12px #f59e0b33;border-color:#f59e0b}.vault-root-node--collection{border-left-color:#8b5cf6}.vault-root-node--collection:hover{box-shadow:0 0 12px #8b5cf633;border-color:#8b5cf6}.vault-root-node__icon{font-size:.8rem;flex-shrink:0}.vault-root-node__label{font-size:.75rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vault-root-node__folder{font-size:.6rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.02em}.vault-root-ctx-menu{position:fixed;z-index:50;min-width:160px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 6px 24px #0006;padding:4px 0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.vault-root-ctx-menu__item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 14px;border:none;background:none;color:var(--text);font-size:.8rem;font-family:var(--font);cursor:pointer;text-align:left;transition:background var(--transition)}.vault-root-ctx-menu__item:hover{background:var(--accent-dim);color:var(--accent)}.sidebar__icon-btn--active{background:var(--accent-dim);color:var(--accent);border-color:var(--accent)}.auth-page{width:100%;height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 10% 10%,rgba(52,211,153,.08),transparent 40%),radial-gradient(circle at 90% 20%,rgba(56,189,248,.1),transparent 50%),var(--bg);padding:20px}.auth-card{width:100%;max-width:400px;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(160deg,var(--panel),var(--panel-2));box-shadow:var(--shadow);overflow:hidden}.auth-card__header{text-align:center;padding:32px 24px 16px}.auth-card__icon{font-size:2.5rem;display:block;margin-bottom:12px}.auth-card__title{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;color:var(--text);margin-bottom:4px}.auth-card__subtitle{color:var(--muted);font-size:.9rem}.auth-card__body{padding:8px 24px 24px;display:flex;flex-direction:column;gap:14px}.auth-field{display:flex;flex-direction:column;gap:4px}.auth-label{font-size:.8rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.auth-input{width:100%;padding:10px 14px;background:#0000004d;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font);font-size:.95rem;outline:none;transition:border-color var(--transition),box-shadow var(--transition)}.auth-input::placeholder{color:var(--muted);opacity:.6}.auth-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}.auth-input--code{text-align:center;font-size:1.8rem;font-family:var(--font-mono);letter-spacing:.3em;padding:12px}.auth-error{background:#f871711a;border:1px solid rgba(248,113,113,.3);border-radius:var(--radius-sm);color:var(--danger);padding:8px 12px;font-size:.85rem}.auth-btn{width:100%;padding:12px;border:none;border-radius:var(--radius-sm);background:var(--accent);color:var(--bg);font-family:var(--font);font-size:.95rem;font-weight:600;cursor:pointer;transition:opacity var(--transition),background var(--transition)}.auth-btn:hover{opacity:.9}.auth-btn:disabled{opacity:.5;cursor:not-allowed}.auth-btn--secondary{background:transparent;color:var(--muted);border-color:var(--border)}.auth-btn--secondary:hover{color:var(--text);border-color:var(--muted)}.auth-btn--danger{background:transparent;color:var(--danger);border-color:var(--danger)}.auth-btn--danger:hover{background:#f871711a}.auth-totp-setup{text-align:center}.auth-totp-instruction{color:var(--muted);font-size:.9rem;margin-bottom:12px}.auth-totp-qr{display:inline-block;padding:12px;background:#fff;border-radius:var(--radius-sm);margin-bottom:12px}.auth-totp-qr img{display:block}.auth-totp-manual{color:var(--muted);font-size:.8rem;cursor:pointer;margin-bottom:4px}.auth-totp-manual summary{margin-bottom:6px}.auth-totp-secret{display:block;background:#0000004d;border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;font-family:var(--font-mono);font-size:.85rem;color:var(--accent);word-break:break-all;-webkit-user-select:all;user-select:all}.tag-colors-manager{display:flex;flex-direction:column;gap:12px}.tag-mgr__add-top{display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--border)}.tag-mgr__add-input{flex:1;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 10px;font-size:.78rem;color:var(--text);outline:none;transition:border-color .15s}.tag-mgr__add-input:focus{border-color:var(--accent)}.tag-mgr__add-input::placeholder{color:var(--muted)}.tag-mgr__add-btn{background:var(--accent);border:none;border-radius:var(--radius-sm);padding:6px 14px;font-size:.74rem;font-weight:600;color:#0a0d12;cursor:pointer;white-space:nowrap;transition:opacity .15s}.tag-mgr__add-btn:hover{opacity:.85}.tag-mgr__add-btn:disabled{opacity:.4;cursor:default}.tag-mgr__bulk{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 0;border-bottom:1px solid var(--border)}.tag-mgr__bulk-btn{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 10px;font-size:.74rem;color:var(--muted);cursor:pointer;transition:color .15s,border-color .15s}.tag-mgr__bulk-btn:hover{color:var(--text);border-color:var(--accent)}.tag-mgr__bulk-btn--danger{color:var(--danger, #f87171)}.tag-mgr__bulk-btn--danger:hover{border-color:var(--danger, #f87171)}.tag-mgr__bulk-label{font-size:.74rem;color:var(--accent);font-weight:600}.tag-mgr__bulk-presets{display:flex;flex-wrap:wrap;gap:5px;width:100%;margin-top:4px;padding-top:8px;border-top:1px solid var(--border)}.tag-mgr__color-dot{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:border-color .15s,transform .15s}.tag-mgr__color-dot:hover{border-color:var(--text);transform:scale(1.12)}.tag-mgr__color-dot--custom{background:conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.tag-mgr__color-dot--clear{background:var(--panel-2);border:2px dashed var(--muted);position:relative}.tag-mgr__color-dot--clear:after{content:"✕";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.7rem;color:var(--muted)}.tag-mgr__color-dot--clear:hover{border-color:var(--danger, #f87171)}.tag-mgr__color-dot--clear:hover:after{color:var(--danger, #f87171)}.tag-mgr__hidden-color-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.tag-mgr__list{display:flex;flex-direction:column;gap:2px}.tag-mgr__row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);transition:background .12s;position:relative}.tag-mgr__row:hover{background:var(--panel-2)}.tag-mgr__row--selected{background:var(--accent-dim)}.tag-mgr__check-label{display:flex;align-items:center}.tag-mgr__check{accent-color:var(--accent);width:18px;height:18px;cursor:pointer}.tag-mgr__pill{display:inline-flex;align-items:center;padding:3px 10px;background:var(--accent);color:#0a0d12;font-size:.78rem;font-weight:600;border-radius:20px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-mgr__count{font-size:.65rem;color:var(--muted);min-width:20px;text-align:right}.tag-mgr__swatch-btn{width:28px;height:28px;border-radius:50%;border:2px solid var(--border);cursor:pointer;flex-shrink:0;transition:border-color .15s,transform .15s}.tag-mgr__swatch-btn:hover{border-color:var(--text);transform:scale(1.12)}.tag-mgr__delete-btn{background:none;border:none;font-size:.72rem;cursor:pointer;padding:2px 4px;border-radius:4px;opacity:0;transition:opacity .15s;flex-shrink:0}.tag-mgr__row:hover .tag-mgr__delete-btn{opacity:.6}.tag-mgr__delete-btn:hover{opacity:1!important}.tag-mgr__color-popup{position:absolute;right:0;top:100%;z-index:20;display:grid;grid-template-columns:repeat(6,1fr);gap:6px;padding:10px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 16px #0006}.tag-mgr__popup-swatch{width:30px;height:30px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:border-color .12s,transform .12s}.tag-mgr__popup-swatch:hover{border-color:var(--text);transform:scale(1.12)}.tag-mgr__popup-swatch--active{border-color:#fff;box-shadow:0 0 0 2px var(--accent)}.tag-mgr__popup-swatch--none{background:var(--panel-2);border:2px dashed var(--muted);position:relative}.tag-mgr__popup-swatch--none:after{content:"✕";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.72rem;color:var(--muted)}.tag-mgr__popup-swatch--custom{background:conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.tag-mgr__confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:1000;display:flex;align-items:center;justify-content:center}.tag-mgr__confirm-dialog{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:20px 24px;max-width:380px;width:90%;box-shadow:0 8px 32px #00000080}.tag-mgr__confirm-text{font-size:.88rem;color:var(--text);margin-bottom:6px}.tag-mgr__confirm-sub{font-size:.76rem;color:var(--muted);margin-bottom:16px;line-height:1.4}.tag-mgr__confirm-actions{display:flex;justify-content:flex-end;gap:8px}.cal-root{display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden;background:var(--content-bg);-webkit-user-select:none;user-select:none}.cal-toolbar{display:flex;align-items:center;gap:8px;padding:12px 20px;border-bottom:1px solid var(--surface);flex-shrink:0}.cal-toolbar__year{font-size:20px;font-weight:600;color:var(--text);margin:0;min-width:60px;text-align:center}.cal-toolbar__nav{background:var(--surface);border:none;color:var(--text);font-size:14px;padding:4px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition)}.cal-toolbar__nav:hover{background:var(--panel-2)}.cal-toolbar__spacer{flex:1}.cal-toolbar__zoom{display:flex;align-items:center;gap:4px}.cal-toolbar__zoom-val{color:var(--muted);font-size:12px;min-width:40px;text-align:center}.cal-toolbar__create{margin-left:8px}.cal-btn{border:none;border-radius:var(--radius-sm);padding:6px 14px;font-size:13px;cursor:pointer;font-family:var(--font);transition:background var(--transition)}.cal-btn--primary{background:var(--accent);color:#000;font-weight:600}.cal-btn--primary:hover{opacity:.85}.cal-btn--danger{background:transparent;color:var(--danger)}.cal-btn--danger:hover{background:#f871711f}.cal-year{flex:1;min-width:0;min-height:0;overflow:auto;touch-action:none;-webkit-overflow-scrolling:touch}.cal-year__grid{display:grid;grid-template-columns:repeat(12,1fr);min-width:100%;min-height:100%}.cal-col{display:flex;flex-direction:column;border-right:1px solid var(--surface);min-width:0}.cal-col:last-child{border-right:none}.cal-col__header{position:sticky;top:0;z-index:3;background:var(--panel);font-size:11px;font-weight:700;color:var(--accent);text-align:center;padding:6px 4px;letter-spacing:.05em;border-bottom:1px solid var(--surface)}.cal-col__body{position:relative;display:flex;flex-direction:column;flex:1}.cal-cell{display:flex;align-items:center;gap:4px;padding:0 6px;flex:1;min-height:18px;cursor:pointer;transition:background var(--transition);border-bottom:1px solid rgba(255,255,255,.03)}.cal-cell:hover{background:var(--surface)}.cal-cell--weekend{background:#ffffff05}.cal-cell--weekend .cal-cell__day,.cal-cell--weekend .cal-cell__dow{color:var(--danger);opacity:.7}.cal-cell--today{background:var(--accent-dim)}.cal-cell--today .cal-cell__day{color:var(--accent);font-weight:700}.cal-cell--selected{background:#2dd4a826}.cal-cell--drag{background:#2dd4a838}.cal-cell__day{font-size:11px;font-weight:500;color:var(--text);min-width:16px;text-align:right;font-variant-numeric:tabular-nums}.cal-cell__dow{font-size:9px;color:var(--muted);min-width:16px}.cal-cell__wk{font-size:8px;color:var(--muted);opacity:.5;margin-left:2px;font-variant-numeric:tabular-nums}.cal-event-bar{position:absolute;border-radius:4px;overflow:hidden;cursor:grab;z-index:1;transition:filter var(--transition)}.cal-event-bar:hover{filter:brightness(1.3);z-index:2}.cal-root--dragging-event{cursor:grabbing}.cal-root--dragging-event .cal-event-bar{cursor:grabbing;transition:none}.cal-event-bar__text{writing-mode:vertical-rl;text-orientation:mixed;font-size:9px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:4px 1px;display:block;width:100%;height:100%;line-height:1}.cal-event-editor{position:fixed;z-index:1000;background:var(--panel);border:1px solid var(--surface);border-radius:var(--radius);padding:16px;width:280px;box-shadow:var(--shadow-pop);display:flex;flex-direction:column;gap:10px}.cal-event-editor__header{display:flex;align-items:center}.cal-event-editor__title{flex:1;font-size:15px;font-weight:600;background:transparent;border:none;border-bottom:1px solid var(--surface);color:var(--text);padding:4px 0;font-family:var(--font);outline:none}.cal-event-editor__title:focus{border-bottom-color:var(--accent)}.cal-event-editor__field{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted)}.cal-event-editor__field input,.cal-event-editor__field select{background:var(--surface);border:1px solid transparent;color:var(--text);padding:5px 8px;border-radius:var(--radius-sm);font-size:13px;font-family:var(--font);outline:none}.cal-event-editor__field input:focus,.cal-event-editor__field select:focus{border-color:var(--accent)}.cal-event-editor__actions{display:flex;justify-content:space-between;margin-top:4px}@media(max-width:768px){.cal-toolbar{padding:8px 12px}}
