.react-flow{--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:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--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:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--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:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--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 #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.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:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--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:#555;--xy-background-pattern-lines-color-default:#333;--xy-background-pattern-cross-color-default:#333;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--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:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--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 #00000014;--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{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.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{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.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;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:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.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:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;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%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;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{z-index:5;margin:15px;position:absolute}.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{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.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{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.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{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;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));padding:10px;font-size:12px}.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{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.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-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.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[data-theme=dark]{--bg:#15202b;--panel:#192734;--panel-2:#22303c;--hover:#2c3a47;--border:#2f3d4a;--border-strong:#4a5866;--text:#f7f9f9;--muted:#8b98a5;--accent:#e8b931;--accent-hover:#f2c94c;--accent-ink:#e8b931;--on-accent:#1c1600;--danger:#ff5c5c;--card:#fafaf7;--card-text:#1c1d21;--card-border:transparent;--card-muted:#777;--frame-bg:#0d151c;--dot:#2a3846;--arrow:#d6dde3;--shadow:#040a1073;--shadow-strong:#040a108c;--minimap-mask:#0d151cb8;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root,:root[data-theme=light]{--bg:#f3f5f7;--panel:#fff;--panel-2:#eef1f4;--hover:#e2e7ec;--border:#d7dde3;--border-strong:#b5bec8;--text:#111316;--muted:#5d6570;--accent:#d4a017;--accent-hover:#c39214;--accent-ink:#8a6500;--on-accent:#1c1600;--danger:#e03e3e;--card:#fff;--card-text:#1c1d21;--card-border:#e0e4e8;--card-muted:#888;--frame-bg:#111214;--dot:#ccd3da;--arrow:#3d434c;--shadow:#1018201f;--shadow-strong:#1018202e;--minimap-mask:#f0f3f6bf;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=light] :is(.toolbar,.tool-palettes){--panel:#0b0b0d;--panel-2:#1c1d21;--hover:#26272c;--border:#26272d;--border-strong:#3b3d45;--text:#eef0f3;--muted:#9198a1;--bg:#0b0b0d;--accent-hover:#f2c94c;--accent-ink:#e8b931;--pill:#3a3d45;--pill-hover:#464a53;--pill-group:#2b2e34;--shadow:#00000073;color:var(--text);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root{color:var(--text);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,sans-serif;font-size:14px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg)}a{color:var(--accent-ink)}button{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:6px 10px}button:hover:not(:disabled){background:var(--hover)}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--accent);border-color:var(--accent-ink);color:var(--on-accent);font-weight:600}button.primary:hover:not(:disabled){background:var(--accent-hover)}button.danger:hover:not(:disabled){background:var(--danger);color:#fff}.center-message{height:100%;color:var(--muted);place-items:center;display:grid}.home{max-width:1200px;margin:0 auto;padding:40px 24px}.home-header{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.home-header h1{margin:0;font-size:26px}.home-empty{text-align:center;color:var(--muted);padding:80px 0}.board-grid{grid-template-columns:repeat(auto-fill,minmax(262px,1fr));gap:16px;display:grid}.board-card{background:var(--panel);border:1px solid var(--border);transition:translate .25s var(--spring), box-shadow .2s ease, border-color .2s ease;border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.board-card:hover{border-color:var(--border-strong);box-shadow:0 10px 24px var(--shadow);translate:0 -2px}.board-card-main{color:var(--text);flex-direction:column;flex:1;text-decoration:none;display:flex}.board-thumb{aspect-ratio:16/10;background-color:var(--bg);background-image:radial-gradient(var(--dot) 1px, transparent 1px);border-bottom:1px solid var(--border);background-size:12px 12px;width:100%;display:block}.board-thumb-empty{color:var(--muted);place-items:center;font-size:13px;display:grid}.board-card-name{-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;margin:12px 14px 0;font-size:15px;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.board-card-date{color:var(--muted);margin:4px 14px 12px;font-size:12px}.board-card-actions{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:center;gap:4px;padding:10px 8px 12px;display:flex}.board-card-actions button{padding:5px 8px;font-size:12px}.board-card-actions button.danger{color:var(--danger)}.home-section{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:28px 0 12px;font-size:15px;font-weight:700}.home-section:first-of-type{margin-top:8px}.home-section-empty{color:var(--muted);margin:0;font-size:13px}.home-error{margin-bottom:12px}.board-card-owner{color:var(--accent-ink);margin:4px 14px 0;font-size:12px;font-weight:600}.name-prompt{background:color-mix(in srgb, var(--accent) 10%, var(--panel));border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;padding:12px 14px;font-size:13px;display:flex}.name-prompt input{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;min-width:180px;padding:6px 10px}.testing-start{color:var(--muted);background:0 0;border-color:#0000;margin:40px auto 0;font-size:12px;display:block}.testing-bar{background:color-mix(in srgb, #eab308 16%, var(--panel));border:1px solid #eab30880;border-radius:10px;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;padding:10px 14px;font-size:13px;display:flex}.testing-bar select{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;padding:4px 8px}.testing-hint{min-width:200px;color:var(--muted);flex:1}.board-page{flex-direction:column;height:100%;display:flex;overflow:clip}.toolbar{background:var(--panel);border-bottom:1px solid var(--border);white-space:nowrap;flex-wrap:nowrap;align-items:center;gap:12px;padding:8px 14px;display:flex}.toolbar>*{flex-shrink:0}.tb-back{color:var(--muted);white-space:nowrap;text-decoration:none}.tb-back:hover{color:var(--text)}.tb-title{text-overflow:ellipsis;border-radius:4px;min-width:120px;max-width:280px;padding:4px 6px;font-size:16px;font-weight:600;overflow:hidden}.tb-title.editable:not(.editing){white-space:nowrap}.tb-title:not(.editing):hover{background:var(--panel-2)}.tb-group{gap:4px;display:flex}.tb-group>.tb-menu-wrap{display:flex}.tb-group .ico{opacity:.85;margin-right:2px}.tb-peers{align-items:center;gap:12px;margin-left:auto;display:flex}.tb-peers .theme-switch{margin-right:0}.avatar{border:2px solid var(--panel);color:#111;border-radius:50%;width:30px;height:30px;padding:0;font-size:11px;font-weight:700}.canvas{flex:1;min-height:0;position:relative}.help-bar{color:var(--muted);background:var(--panel);border-top:1px solid var(--border);white-space:nowrap;text-overflow:ellipsis;padding:5px 14px;font-size:11px;overflow:hidden}.empty-hint{color:var(--muted);pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex;position:absolute;inset:0}.empty-hint strong{color:var(--text);font-size:18px}.react-flow{--xy-background-color:var(--bg);--xy-selection-background-color:color-mix(in srgb, var(--accent) 12%, transparent);--xy-selection-border:1px dashed var(--accent)}.selection-bar{z-index:10;background:var(--panel);border:1px solid var(--border);box-shadow:0 4px 16px var(--shadow-strong);white-space:nowrap;border-radius:10px;align-items:center;gap:4px;padding:4px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.selection-bar button{padding:4px 10px;font-size:12px}.selection-count{margin:0 6px 0 8px;font-size:12px;font-weight:600}.selection-clear{color:var(--muted)!important;background:0 0!important;border-color:#0000!important}.react-flow__controls button{border-radius:0}.react-flow__minimap{border:1px solid var(--border);border-radius:6px;overflow:hidden}.editable{white-space:pre-wrap;word-break:break-word;cursor:text}.editable.is-empty{opacity:.45;font-style:italic}textarea.editable{resize:none;outline:2px solid var(--accent);outline-offset:1px;color:#111;width:100%;font:inherit;background:#ffffffe6;border:none;border-radius:3px;margin:0;padding:0;display:block;overflow:hidden}.card{background:var(--card);color:var(--card-text);border:1px solid var(--card-border);box-shadow:0 2px 10px var(--shadow);border-radius:8px;height:100%;position:relative}.card.selected{outline:2px solid var(--accent);outline-offset:2px}.card .react-flow__handle{background:var(--accent);opacity:0;border:2px solid #fff;width:12px;height:12px;transition:opacity .12s}.react-flow__node:hover .card .react-flow__handle,.card.selected .react-flow__handle{opacity:1}.react-flow__node-imageFrame .react-flow__resize-control.line.top,.react-flow__node-imageFrame .react-flow__resize-control.line.bottom{display:none}.node-toolbar{background:var(--panel);border:1px solid var(--border);box-shadow:0 4px 16px var(--shadow-strong);border-radius:8px;align-items:center;gap:4px;padding:4px;display:flex}.node-toolbar button{padding:3px 8px;font-size:12px}.node-toolbar button.active{background:var(--accent);color:var(--on-accent);border-color:var(--accent-ink)}.node-toolbar .sep{background:var(--border);align-self:stretch;width:1px;margin:0 2px}.swatches{gap:4px;display:flex}.swatch{border:2px solid #0000;border-radius:50%;width:20px;height:20px;padding:0}.swatch.active{border-color:var(--text)}.image-frame{padding:8px 10px 10px}.frame-header{align-items:baseline;gap:6px;margin-bottom:6px;display:flex}.shot-label{letter-spacing:.1em;color:var(--card-muted);font-size:10px;font-weight:700}.shot-number{min-width:20px;font-size:16px;font-weight:800}.frame-image{background:var(--frame-bg);border-radius:4px;place-items:center;display:grid;overflow:hidden}.frame-image.dropping{outline:3px dashed var(--accent)}.frame-image img{object-fit:contain;width:100%;height:100%;display:block}.frame-empty{color:var(--card-muted);text-align:center;font-size:12px;line-height:1.5}.caption{min-height:1.4em;margin-top:8px;font-size:13px;line-height:1.4}.sticky{box-shadow:0 6px 14px var(--shadow-strong);border:none;border-radius:3px;padding:14px;overflow:hidden}.sticky-text{height:100%;font-size:15px;line-height:1.4}.note-measure{visibility:hidden;pointer-events:none;box-sizing:border-box;position:absolute;top:0;left:-10000px;height:auto!important}.note-measure .sticky-text{height:auto}.sticky textarea.editable{background:#ffffff80}.react-flow__node-section{pointer-events:none!important}.react-flow__node-section .section-drag,.react-flow__node-section .section-edge,.react-flow__node-section .react-flow__resize-control,.react-flow__node-section .node-toolbar{pointer-events:all}.section{border:2px dashed var(--section-color);border-radius:12px;height:100%;position:relative}:root[data-theme=light] .section{border-color:color-mix(in srgb, var(--section-color) 55%, #000)}.section.selected{border-style:solid}.section-edge{cursor:grab;position:absolute}.section-edge.top,.section-edge.bottom{height:12px;left:-7px;right:-7px}.section-edge.left,.section-edge.right{width:12px;top:-7px;bottom:-7px}.section-edge.top{top:-7px}.section-edge.bottom{bottom:-7px}.section-edge.left{left:-7px}.section-edge.right{right:-7px}.section-drag{color:#14151a;cursor:grab;border-radius:12px 0 10px;max-width:100%;margin:-2px 0 0 -2px;padding:6px 14px;display:inline-block}.section-title{letter-spacing:.02em;text-transform:uppercase;min-width:80px;font-size:18px;font-weight:800}.anchor-wrap{cursor:grab;width:14px;height:14px;position:relative}.anchor-wrap:active{cursor:grabbing}.anchor-grab{border-radius:50%;width:40px;height:40px;position:absolute;top:-13px;left:-13px}.anchor{background:var(--arrow);border:2px solid var(--bg);opacity:0;pointer-events:none;border-radius:50%;transition:box-shadow .12s,background .12s,opacity .12s;position:absolute;inset:0}.anchor-wrap.shown .anchor{opacity:1}.react-flow__node-anchor:hover .anchor,.anchor-wrap.selected .anchor{opacity:1;background:var(--accent);box-shadow:0 0 0 5px color-mix(in srgb, var(--accent) 30%, transparent)}.anchor-handle{opacity:0;pointer-events:none;top:50%!important}.react-flow__edge-path.arrow{stroke:var(--arrow);stroke-width:2.5px}.react-flow__edge-path.arrow.on-paper{stroke:#3a3c44}.react-flow__edge-path.arrow.selected,.react-flow__edge.selected .react-flow__edge-path.arrow{stroke:var(--accent)}.edge-ui{pointer-events:all;width:0;height:0;position:absolute}.bend-handle:before{content:"";border-radius:50%;position:absolute;inset:-10px}.bend-handle{background:var(--accent);border:3px solid var(--bg);cursor:move;touch-action:none;border-radius:50%;width:16px;height:16px;position:absolute;top:-8px;left:-8px}.edge-label{background:var(--panel-2);border:1px solid var(--border);color:var(--text);white-space:nowrap;cursor:text;border-radius:10px;padding:2px 8px;font-size:12px;font-weight:600;position:absolute;top:12px;left:0;transform:translate(-50%)}.edge-add-label{white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:11px;position:absolute;top:14px;left:0;transform:translate(-50%)}.edge-label textarea.editable{white-space:nowrap;min-width:130px}.edge-presets{min-width:170px;max-height:260px;position:absolute;top:42px;left:0;overflow-y:auto;transform:translate(-50%)}.edge-presets button{white-space:nowrap;padding:5px 10px;font-size:12px}.edge-presets button.hi{background:color-mix(in srgb, var(--accent) 18%, transparent)}.edge-presets{--menu-from:0 -6px;transform-origin:top;animation:.16s cubic-bezier(.2,.8,.2,1) backwards menu-in}.edge-presets button{animation:.18s ease-out backwards preset-in;animation-delay:calc(min(var(--i,0), 10) * 18ms)}@keyframes preset-in{0%{opacity:0;translate:0 -3px}}.remote-cursor{pointer-events:none;z-index:1000000;position:absolute}.remote-cursor span{color:#111;white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600;position:absolute;top:16px;left:14px}.remote-selection{border:2px solid var(--peer);pointer-events:none;z-index:999999;box-sizing:border-box;border-radius:6px;position:absolute;top:0;left:0}.remote-selection span{background:var(--peer);color:#111;white-space:nowrap;border-radius:4px;margin-bottom:3px;padding:1px 6px;font-size:11px;font-weight:600;position:absolute;bottom:100%;left:-2px}.is-locked{outline:2px solid var(--lock-color);outline-offset:2px;cursor:not-allowed;border-radius:3px;position:relative}.is-locked:after{content:attr(data-lock);background:var(--lock-color);color:#111;letter-spacing:0;text-transform:none;white-space:nowrap;pointer-events:none;z-index:5;border-radius:4px;padding:1px 6px;font:600 10px/1.5 -apple-system,BlinkMacSystemFont,Inter,sans-serif;position:absolute;bottom:calc(100% + 4px);left:-2px}.edited-tip{z-index:2000;color:var(--text);background:var(--glass);border:1px solid var(--border);box-shadow:0 6px 18px var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:none;white-space:nowrap;border-radius:6px;padding:4px 9px;font-size:12px;animation:.18s backwards fade-up;position:fixed}.history-list{flex-direction:column;gap:2px;display:flex}.history-day{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:14px 0 4px;font-size:11px;font-weight:700}.history-row{text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;flex-direction:column;align-items:flex-start;gap:1px;width:100%;padding:8px 10px;display:flex}.history-row.on{background:color-mix(in srgb, var(--accent) 14%, transparent);border-color:color-mix(in srgb, var(--accent) 45%, transparent)}.history-time{font-weight:600}.history-who{color:var(--muted);font-size:12px}.tb-review.tb-version{background:#eab30847;border-color:#eab3088c}.access-closed{z-index:3000}.theme-switch{background:var(--panel-2);border:1px solid var(--border);border-radius:14px;flex-shrink:0;justify-content:space-between;align-items:center;width:56px;height:28px;padding:0 7px;display:inline-flex;position:relative}.theme-switch-icon{color:var(--muted);font-size:13px;line-height:1}.theme-switch-knob{background:var(--accent);width:22px;height:22px;box-shadow:0 1px 3px var(--shadow-strong);border-radius:50%;transition:transform .18s;position:absolute;top:2px;left:2px}.theme-switch.on .theme-switch-knob{transform:translate(28px)}.react-flow__minimap.minimap-raised{margin-bottom:56px}.corner-controls{align-items:center;gap:8px;display:flex}.sound-switch{width:30px;height:30px;color:var(--text);border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.sound-switch.off{color:var(--muted)}.home-header-actions{align-items:center;gap:12px;display:flex}.react-flow__resize-control.handle{background:var(--accent);border:1.5px solid #fff;border-radius:2px;width:10px;height:10px}.react-flow__resize-control.line{border-color:#0000}.react-flow__resize-control.line:hover{border-color:var(--accent-ink)}.zoom-overlay{z-index:4;cursor:zoom-in;touch-action:none;position:absolute;inset:0}.zoom-overlay.out{cursor:zoom-out}.react-flow__controls-button.tool-active{background:var(--accent);color:var(--on-accent)}.react-flow__controls-button.tool-active:hover{background:var(--accent-hover)}.react-flow__controls-button svg.ctl-icon{fill:none;max-width:14px;max-height:14px}.react-flow__pane.selection{cursor:crosshair}.marker-overlay{z-index:4;touch-action:none;cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Ccircle cx='8' cy='8' r='4' fill='none' stroke='white' stroke-width='3'/%3E%3Ccircle cx='8' cy='8' r='4' fill='none' stroke='black' stroke-width='1.2'/%3E%3C/svg%3E") 8 8,crosshair;position:absolute;inset:0}.marker-live{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.marker-live path,.drawing-ink{fill:none;stroke-linecap:round;stroke-linejoin:round}.marker-panel{align-items:center;gap:8px;padding:6px 10px;display:flex}.marker-panel-label{color:var(--muted);font-size:12px;font-weight:600}.marker-options{align-items:center;gap:4px;display:flex}.marker-options .sep{background:var(--border);align-self:stretch;width:1px;margin:0 4px}.marker-options .swatch{box-shadow:inset 0 0 0 1px #7f7f7f80}.marker-size{place-items:center;width:30px;height:26px;padding:0;display:grid}.marker-size span{border-radius:50%;display:block;box-shadow:0 0 0 1px #7f7f7f80}.marker-size.active{border-color:var(--accent-ink);background:var(--panel-2)}.react-flow__node-drawing{pointer-events:none!important}.react-flow__node-drawing .react-flow__resize-control{pointer-events:all}.drawing{width:100%;height:100%;position:relative}.drawing svg{display:block;overflow:visible}.drawing-hit{fill:none;stroke:#0000;stroke-linecap:round;stroke-linejoin:round;pointer-events:stroke;cursor:move}.drawing.selected{outline:1.5px dashed var(--accent);outline-offset:2px}.tb-menu-wrap{position:relative}.caret{opacity:.7;margin-left:2px;font-size:10px}.tb-menu{background:var(--panel);border:1px solid var(--border);min-width:180px;box-shadow:0 8px 24px var(--shadow-strong);border-radius:8px;flex-direction:column;padding:4px;display:flex}.tb-menu button{text-align:left;background:0 0;border-color:#0000;padding:8px 10px}.dialog-backdrop{z-index:100;background:#00000073;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dialog{background:var(--panel);width:min(480px,100%);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:20px;box-shadow:0 16px 48px #0006}.dialog h2{margin:0 0 6px;font-size:17px}.board-card.leaving{pointer-events:none;animation:.26s cubic-bezier(.5,0,.75,0) forwards shrink-out}.ask-dialog input{margin-bottom:4px}.ask-board{border:1px solid var(--border);border-radius:10px;margin:4px 0 12px;overflow:hidden}.ask-board .board-thumb{border-bottom:none}button.primary.danger-fill{background:var(--danger);border-color:var(--danger);color:#fff;box-shadow:0 4px 14px color-mix(in srgb, var(--danger) 35%, transparent)}button.primary.danger-fill:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 85%, #000)}.dialog-hint{color:var(--muted);margin:0 0 14px;font-size:13px;line-height:1.45}.dialog input{width:100%;font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:7px;outline:none;padding:9px 11px}.dialog input:focus{border-color:var(--accent-ink)}.dialog-error{color:var(--danger);margin-top:10px;font-size:13px;line-height:1.4}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.toast{z-index:20;background:var(--panel);border:1px solid var(--border);max-width:min(560px,100% - 32px);box-shadow:0 6px 20px var(--shadow-strong);cursor:default;border-radius:8px;align-items:center;gap:8px;padding:9px 14px;font-size:13px;line-height:1.4;display:flex;position:absolute;bottom:70px;left:50%;transform:translate(-50%)}.toast.error{border-color:var(--danger)}.spinner{border:2px solid var(--border);border-top-color:var(--accent-ink);border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.image-node{width:100%;height:100%;box-shadow:0 2px 10px var(--shadow);border-radius:3px;position:relative}.image-node img{object-fit:cover;border-radius:3px;width:100%;height:100%;display:block}.react-flow__node.in-frame .image-node{box-shadow:none}.image-node.selected{outline:2px solid var(--accent);outline-offset:2px}.image-missing{background:var(--frame-bg);width:100%;height:100%}.image-node .react-flow__handle{background:var(--accent);opacity:0;border:2px solid #fff;width:12px;height:12px;transition:opacity .12s}.react-flow__node:hover .image-node .react-flow__handle,.image-node.selected .react-flow__handle{opacity:1}.frame-image.filled img{object-fit:cover}.frame-image.open{outline-offset:-1.5px;background:#fff;outline:1.5px dashed #c9c9c2}.frame-image.open .frame-empty{opacity:0;color:#9a9a92;transition:opacity .15s}.react-flow__node:hover .frame-image.open .frame-empty,.image-frame.selected .frame-image.open .frame-empty{opacity:1}.frame-image{position:relative}.frame-image.fill-target{outline-offset:-3px;box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 35%, transparent);outline:3px solid var(--accent)!important}.frame-image.fill-target:after{content:"Release to fill panel";background:var(--accent);color:var(--on-accent);white-space:nowrap;pointer-events:none;border-radius:12px;padding:4px 10px;font-size:12px;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.react-flow__node.fill-source{opacity:.45}.context-menu{z-index:200;background:var(--panel);border:1px solid var(--border);min-width:220px;box-shadow:0 10px 30px var(--shadow-strong);border-radius:8px;flex-direction:column;padding:4px;display:flex;position:fixed}.context-menu button{text-align:left;background:0 0;border-color:#0000;justify-content:space-between;gap:16px;padding:7px 10px;font-size:13px;display:flex}.context-menu button.danger{color:var(--danger)}.context-menu button.danger:hover{color:#fff}.context-hint{color:var(--muted);font-size:12px}.context-sep{background:var(--border);height:1px;margin:4px 6px}.tb-menu button{justify-content:space-between;gap:16px;display:flex}.framed{border-radius:inherit;pointer-events:none;position:absolute;inset:0}.framed.cropped{overflow:hidden}.framed-whole,.crop-whole{position:absolute}.crop-whole{inset:0}:is(.image-node:has(>.crop-editor),.drawing:has(>.crop-editor)){box-shadow:none;outline:none}:is(:is(.image-node,.drawing):has(>.crop-editor)>.framed,.react-flow__node:has(.crop-editor) .react-flow__handle,.rot:has(.crop-editor)>:is(.rotate-handle,.rotate-stem,.tilt-handle)){display:none}.react-flow__node-toolbar.crop-toolbar button.primary:not(.swatch):not(.marker-size):not(.tb-active){background:var(--accent);color:var(--on-accent);border-color:#0000}.react-flow__node-toolbar.crop-toolbar button.primary:not(.swatch):not(.marker-size):not(.tb-active):hover{background:var(--accent-hover)}.crop-editor{z-index:5;cursor:default;pointer-events:all;position:absolute}.crop-editor .drawing-hit{pointer-events:none}.crop-whole.dim{opacity:.3}.crop-bright{pointer-events:none;position:absolute;inset:0}.crop-box{outline:1.5px solid var(--accent);cursor:move;touch-action:none;position:absolute;box-shadow:0 0 0 1px #00000040}.crop-handle{border:2px solid var(--accent);touch-action:none;background:#fff;border-radius:3px;width:12px;height:12px;margin:-6px 0 0 -6px;position:absolute}.crop-handle.nw,.crop-handle.n,.crop-handle.ne{top:0}.crop-handle.e,.crop-handle.w{top:50%}.crop-handle.sw,.crop-handle.s,.crop-handle.se{top:100%}.crop-handle.nw,.crop-handle.w,.crop-handle.sw{left:0}.crop-handle.n,.crop-handle.s{left:50%}.crop-handle.ne,.crop-handle.e,.crop-handle.se{left:100%}.crop-handle.nw,.crop-handle.se{cursor:nwse-resize}.crop-handle.ne,.crop-handle.sw{cursor:nesw-resize}.crop-handle.n,.crop-handle.s{cursor:ns-resize}.crop-handle.e,.crop-handle.w{cursor:ew-resize}.rot{transform-origin:50%;width:100%;height:100%;position:relative}.rot.rotated .react-flow__resize-control{display:none}.rotate-handle{background:var(--panel);border:2px solid var(--accent);cursor:grab;pointer-events:all;touch-action:none;transform-origin:50% 0;z-index:10;border-radius:50%;width:14px;height:14px;position:absolute;bottom:-34px;left:50%}.rotate-handle:active{cursor:grabbing}.rot>.rotate-handle:after,.canvas:not(.tool-transform) .rotate-stem{display:none}.rotate-stem{background:var(--accent);z-index:-1;pointer-events:none;width:1.5px;margin-left:-.75px;position:absolute;top:100%;bottom:-20px;left:50%}.rotate-handle:after{content:"";background:var(--accent);width:1.5px;height:20px;margin-left:-.75px;position:absolute;bottom:12px;left:50%}.rotate-badge{background:var(--accent);color:var(--on-accent);white-space:nowrap;pointer-events:none;border-radius:6px;padding:2px 6px;font-size:11px;font-weight:700;position:absolute;top:18px;left:50%}.tilt-handle{background:var(--accent);pointer-events:all;touch-action:none;z-index:10;border:1.5px solid #fff;border-radius:2px;width:10px;height:10px;margin:-5px 0 0 -5px;position:absolute}.menu-check{width:16px;color:var(--accent-ink);font-weight:700;display:inline-block}.frame-header{flex-wrap:wrap}.shot-details{align-items:center;gap:2px;margin-left:auto;display:flex}.chip{letter-spacing:.02em;color:var(--card-text);background:0 0;border:1px solid #0000;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:700}.chip:hover:not(:disabled){background:#ecece6;border-color:#dcdcd4}.chip:not(.chip-empty)~.chip:not(.chip-empty):before{content:"·";color:var(--card-muted);margin-right:6px}.chip-auto:after{content:"auto";letter-spacing:.06em;text-transform:uppercase;color:var(--card-muted);margin-left:3px;font-size:8px;font-weight:700}.chip-reset{visibility:hidden;color:var(--card-muted);background:0 0;border:none;border-radius:999px;padding:0 4px;font-size:12px;line-height:1.4}.chip-reset:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent-ink)}.react-flow__node:hover .chip-reset,.image-frame.selected .chip-reset{visibility:visible}.canvas.review .chip-reset{display:none}.chip-empty{visibility:hidden;color:#b3b3aa;font-weight:500}.react-flow__node:hover .chip-empty,.image-frame.selected .chip-empty{visibility:visible}.chip-input{font:inherit;border:1.5px solid var(--accent);color:#111;background:#fff;border-radius:4px;outline:none;padding:1px 5px;font-size:11px;font-weight:600}.lens-notes{color:var(--card-muted);margin-top:2px;font-size:11px;line-height:1.4}.pscript.has-lines{border-top:1px dashed #d8d8d0;margin-top:8px;padding-top:8px}.pscript-line{background:color-mix(in srgb, var(--line-color,#888) 11%, transparent);border-left:3px solid;border-radius:0 6px 6px 0;grid-template-columns:auto 1fr auto;align-items:start;gap:6px;margin-bottom:4px;padding:4px 4px 4px 8px;transition:background-color .12s;display:grid}.pscript-tag .tb-menu-wrap>button{letter-spacing:.06em;color:inherit;background:0 0;border-color:#0000;padding:1px 4px;font-size:10px;font-weight:800}.pscript-tag .tb-menu-wrap>button:hover{background:#ecece6}.pscript-tag .caret{display:none}.pscript-text{padding-top:1px;font-family:Courier Prime,Courier New,ui-monospace,monospace;font-size:12.5px;line-height:1.45}.pscript-remove{color:var(--card-muted);opacity:0;background:0 0;border-color:#0000;padding:0 4px;font-size:14px;line-height:1}.pscript-line:hover .pscript-remove{opacity:1}.panel-addbar{visibility:hidden;z-index:5;gap:6px;padding-top:6px;display:flex;position:absolute;top:100%;left:0}.react-flow__node:hover .panel-addbar,.image-frame.selected .panel-addbar{visibility:visible}.panel-addbar button{background:var(--panel);border:1px solid var(--border);color:var(--text);box-shadow:0 2px 8px var(--shadow);white-space:nowrap;border-radius:6px;padding:3px 9px;font-size:11px}.panel-addbar button:hover{border-color:var(--accent-ink)}.tb-total{color:var(--muted);white-space:nowrap;font-size:12px}.tb-total strong{color:var(--text);font-weight:700}.tb-total-missing{opacity:.8}.toolbar button.tb-active{background:var(--accent);border-color:var(--accent-ink);color:var(--on-accent)}.toolbar button.tb-active:hover:not(:disabled){background:var(--accent-hover)}.tb-svg{vertical-align:-2px;margin-right:2px}.glossary{z-index:30;background:var(--panel);border-left:1px solid var(--border);width:min(400px,100%);box-shadow:-10px 0 30px var(--shadow-strong);flex-direction:column;display:flex;position:absolute;top:0;bottom:0;right:0}.glossary-head{align-items:flex-start;gap:12px;padding:16px 16px 8px;display:flex}.glossary-head h2{margin:0 0 4px;font-size:18px}.glossary-head p{color:var(--muted);margin:0;font-size:12px;line-height:1.45}.glossary-close{color:var(--muted);background:0 0;border-color:#0000;margin-left:auto}.glossary-search{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:7px;outline:none;margin:4px 16px 8px;padding:8px 10px}.glossary-search:focus{border-color:var(--accent-ink)}.glossary-body{flex:1;padding:0 16px 24px;overflow-y:auto}.glossary-body h3{letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink);margin:18px 0 2px;font-size:12px}.glossary-intro{color:var(--muted);margin:0 0 8px;font-size:12px}.glossary dl{margin:0}.glossary-entry{border-bottom:1px solid var(--border);padding:8px 0}.glossary-entry dt{align-items:baseline;gap:8px;margin-bottom:2px;display:flex}.glossary-term{font-size:13px;font-weight:800}.glossary-name{color:var(--muted);font-size:12px}.glossary-entry dd{margin:0;font-size:13px;line-height:1.45}.glossary-example{color:var(--muted);margin-top:2px;font-size:12px;font-style:italic;display:block}.glossary-none{color:var(--muted);font-size:13px}.pscript-body{min-width:0}.span-badge{color:#fff;letter-spacing:.02em;border-radius:8px;margin:1px 0 3px;padding:1px 7px;font-size:10px;font-weight:700;display:inline-block}.pscript-line.spanning{border-left-width:4px}.pscript-line.continued .pscript-text{opacity:.75}.pscript-line.span-hover{background:color-mix(in srgb, var(--line-color,#888) 22%, transparent)}.image-frame.span-glow{box-shadow:0 0 0 3px var(--span-color), 0 2px 10px var(--shadow)}button.span-badge{cursor:pointer;border:none;line-height:1.5}button.span-badge:hover{filter:brightness(1.08)}.pscript-body{position:relative}.span-editor{background:var(--panel);width:230px;color:var(--text);border:1px solid var(--border);box-shadow:0 8px 24px var(--shadow-strong);cursor:default;border-radius:8px;padding:10px;font-family:-apple-system,BlinkMacSystemFont,sans-serif}.span-editor-row{gap:8px;display:flex}.span-editor label{color:var(--muted);flex-direction:column;gap:3px;font-size:11px;display:flex}.span-editor input{width:100%;font:inherit;color:var(--text);border:1px solid var(--border);background:var(--bg);border-radius:6px;outline:none;padding:5px 7px;font-size:14px}.span-editor input:focus{border-color:var(--accent-ink)}.span-editor-hint,.span-editor-error{color:var(--muted);margin-top:6px;font-size:11px}.span-editor-error{color:var(--danger)}.span-editor-actions{justify-content:flex-end;gap:6px;margin-top:8px;display:flex}.span-editor-actions button{padding:4px 10px;font-size:12px}.choice-list{flex-direction:column;gap:8px;display:flex}.choice{text-align:left;border-radius:8px;flex-direction:column;align-items:flex-start;gap:3px;padding:10px 12px;display:flex}.choice strong{font-size:14px}.choice span{color:var(--muted);font-size:12px;line-height:1.4}.choice.primary-choice{border-color:var(--accent-ink)}.frame-header.shot-duplicate .shot-number,.frame-header.shot-duplicate .shot-label{color:var(--danger)}.frame-header.shot-duplicate .shot-number:after{content:" ⚠";font-size:12px}.script-actions{flex-wrap:wrap;gap:6px;padding:0 16px 8px;display:flex}.script-actions button{font-size:12px}.script-tip{color:var(--muted);margin:0 16px 8px;font-size:12px;line-height:1.45}.grip-sample{letter-spacing:-2px;font-weight:700}.script-error{margin:0 16px 8px}.script-body{position:relative}.script-body h3{margin-top:16px}.script-empty{color:var(--muted);padding:24px 0;font-size:13px;line-height:1.5}.ref-line{border-bottom:1px solid var(--border);border-left:3px solid #0000;grid-template-columns:16px 1fr auto;gap:6px;padding:8px 4px 8px 0;display:grid}.ref-line.read-only{grid-template-columns:1fr;padding-left:10px}.ref-line.fresh{background:#eab30814;border-left-color:#eab308}.ref-line.used .ref-text{color:var(--muted)}.ref-grip{cursor:grab;color:var(--muted);letter-spacing:-2px;-webkit-user-select:none;user-select:none;text-align:center;padding-top:18px;font-weight:700}.ref-grip:active{cursor:grabbing}.ref-meta{-webkit-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:2px;display:flex}.ref-tag{letter-spacing:.06em;font-size:10px;font-weight:800}.ref-fresh{color:#1a1300;background:#eab308;border-radius:6px;padding:0 5px;font-size:10px;font-weight:700}.ref-used{color:#22c55e;background:0 0;border:1px solid #22c55e80;border-radius:6px;padding:0 6px;font-size:10px;font-weight:700}.ref-text{cursor:text;font-family:Courier Prime,Courier New,ui-monospace,monospace;font-size:13px;line-height:1.5}.ref-video{color:var(--muted);margin-top:3px;font-size:11px}.ref-buttons{opacity:0;flex-direction:column;gap:4px;display:flex}.ref-line:hover .ref-buttons{opacity:1}.ref-buttons button{padding:1px 7px;font-size:12px}.ref-selbar{z-index:5;background:var(--panel);border:1px solid var(--border);box-shadow:0 6px 18px var(--shadow-strong);border-radius:8px;gap:4px;padding:4px;display:flex;position:absolute}.ref-selbar button{padding:4px 10px;font-size:12px}.script-import{width:min(640px,100%)}.script-paste{resize:vertical;width:100%;height:260px;font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;outline:none;padding:10px;font-size:13px;line-height:1.5}.script-paste:focus{border-color:var(--accent-ink)}.script-import-row{align-items:center;gap:12px;margin-top:10px;display:flex}.script-import-summary{color:var(--muted);font-size:12px}.script-link{color:#16a34a;margin:1px 6px 3px 0;font-size:10px;font-weight:700;display:inline-block}.image-frame.line-over{box-shadow:0 0 0 3px #22c55e, 0 2px 10px var(--shadow)}.ref-tag .tb-menu-wrap>button{letter-spacing:.06em;color:inherit;background:0 0;border-color:#0000;padding:0 4px;font-size:10px;font-weight:800}.ref-tag .tb-menu-wrap>button:hover{background:var(--panel-2)}.ref-tag .caret{display:none}.tb-menu button{font-size:13px}.group-outline{box-sizing:border-box;border:1.5px solid var(--accent);pointer-events:none;z-index:1000000;border-radius:2px;position:absolute}.group-outline.entered{opacity:.7;border-style:dashed}.group-handle{width:12px;height:12px;margin:-6px 0 0 -6px}.save-status{color:var(--muted);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.save-dot{background:#3fbf6f;border-radius:50%;width:7px;height:7px}.save-label{justify-items:end;display:inline-grid}.save-label>span{grid-area:1/1}.save-label-spacer{visibility:hidden}.save-status.saving .save-dot{background:var(--accent)}.save-status.error{color:var(--danger);font-weight:600}.save-status.error .save-dot{background:var(--danger)}.sync-banner{border:1px solid var(--border);background:var(--panel);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;margin:0 0 20px;padding:10px 14px;font-size:13px;line-height:1.45;display:flex}.sync-banner.ok{border-color:#3fbf6f}.sync-banner.error{border-color:var(--danger)}.sync-banner button{flex:none}.group-fill{z-index:-1;background:var(--xy-selection-background-color);pointer-events:all;cursor:move;position:absolute}.react-flow__nodesselection-rect{background:0 0!important;border-color:#0000!important}.selection-outline{pointer-events:none;background:var(--xy-selection-background-color);border:var(--xy-selection-border);position:absolute}.canvas.group-selected .react-flow__nodesselection{display:none}.context-menu button.open{background:var(--hover)}.context-submenu{min-width:160px}.ref-line.removed{border-left-color:var(--danger)}.ref-line.removed .ref-text{color:var(--muted);text-decoration:line-through}.ref-removed{color:var(--danger);align-items:center;gap:4px;font-size:10px;font-weight:700;display:inline-flex}.ref-removed button{padding:0 6px;font-size:11px;font-weight:600}.audio-item{flex-direction:column;gap:6px;display:flex}.audio-top{align-items:center;gap:8px;display:flex}.play-button{background:var(--audio-color,var(--accent));border-color:var(--audio-color,var(--accent));color:#fff;border-radius:50%;flex:none;width:30px;height:30px;padding:0;font-size:11px}.play-button:hover:not(:disabled){background:color-mix(in srgb, var(--audio-color,var(--accent)) 85%, #fff)}.audio-names{flex:1;min-width:0}.audio-title{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.audio-sub{opacity:.75;gap:8px;font-size:11px;display:flex}.audio-artist{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.audio-time{font-variant-numeric:tabular-nums;flex:none;margin-left:auto}.audio-status{align-items:center;gap:8px;min-height:20px;display:flex}.final-pill{color:var(--muted);border:1px dashed color-mix(in srgb, currentColor 45%, transparent);background:0 0;border-radius:999px;flex:none;padding:1px 9px;font-size:11px;font-weight:600;transition:background-color .15s,color .15s,border-color .15s}button.final-pill:hover:not(:disabled){color:var(--text);background:0 0;border-color:#22c55e}.final-pill.on{color:#fff;background:#22c55e;border:1px solid #22c55e}button.final-pill.on:hover:not(:disabled){color:#fff;background:#16a34a}.final-by{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.waveform{cursor:pointer;touch-action:none;height:38px}.waveform svg{width:100%;height:100%;display:block}.wave-base{fill:color-mix(in srgb, currentColor 28%, transparent)}.wave-played{fill:var(--audio-color,var(--accent))}.audio-kind-label{color:var(--audio-color);flex:none;font-size:11px;font-weight:600}.audio-error{color:var(--danger);font-size:11px}.audio-card{padding:10px 12px}.audio-missing{opacity:.7;padding:8px 0;font-size:12px}.audio-row{border-bottom:1px solid var(--border);padding:10px 0}.audio-row-foot{flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;display:flex}.audio-file{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11px;overflow:hidden}.audio-remove{opacity:0;padding:1px 7px;font-size:12px}.audio-row:hover .audio-remove{opacity:1}.audio-panel.dropping{outline:2px dashed var(--accent);outline-offset:-6px}.audio-section{border:1.5px dashed #0000;border-radius:8px;margin:0 -8px;padding:0 8px 4px;transition:background-color .15s,border-color .15s}.audio-section.drop-here{border-color:var(--section-color);background:color-mix(in srgb, var(--section-color) 8%, transparent)}.audio-section h3{align-items:baseline;gap:8px;display:flex}.audio-section-count{letter-spacing:0;text-transform:none;color:var(--muted);font-size:11px;font-weight:600}.audio-section-empty{border:1px dashed var(--border);color:var(--muted);text-align:center;border-radius:8px;margin:4px 0 8px;padding:10px;font-size:12px}.audio-chip{border:1px solid color-mix(in srgb, var(--chip-color,#ff6f9a) 55%, transparent);border-radius:999px;align-items:center;max-width:100%;margin:2px 0;font-size:11px;display:inline-flex}.audio-chip button{color:inherit;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;padding:1px 8px;font-size:11px;overflow:hidden}.audio-chip button:first-child{align-items:baseline;min-width:0;display:inline-flex}.audio-chip-title{text-overflow:ellipsis;min-width:0;margin-left:4px;overflow:hidden}.audio-chip-ok,.audio-chip-from,.audio-chip-time{flex:none}.audio-chip.playing{background:color-mix(in srgb, var(--chip-color,#ff6f9a) 18%, transparent)}.audio-chip-ok{color:#22c55e;margin-left:5px;font-weight:700}.audio-chip-from,.audio-chip-time{opacity:.7;font-variant-numeric:tabular-nums;margin-left:6px}.audio-chip .audio-chip-x{opacity:0;padding:1px 6px 1px 0}.audio-chip:hover .audio-chip-x{opacity:.7}.sound-strip{border-top:1px dashed color-mix(in srgb, currentColor 20%, transparent);margin-top:6px;padding-top:4px}.pscript-head,.sound-strip-head{letter-spacing:.08em;text-transform:uppercase;opacity:.5;margin:0 0 2px;font-size:9px;font-weight:700}.pscript-line.sound .pscript-body{flex-wrap:wrap;align-items:center;gap:2px 8px;display:flex}.pscript-note{opacity:.8;min-width:40px;font-size:12px;font-style:italic}.pscript-note.is-empty{opacity:0}.pscript-line.sound:hover .pscript-note.is-empty{opacity:.45}.sound-pick .tb-menu-wrap>button{border:1px dashed color-mix(in srgb, currentColor 40%, transparent);color:inherit;background:0 0;border-radius:999px;padding:1px 9px;font-size:11px}.side-drawer{max-width:100%}.side-resize{cursor:ew-resize;z-index:2;width:8px;position:absolute;top:0;bottom:0;left:-4px}.side-resize:hover,.side-resize:active{background:color-mix(in srgb, var(--accent) 35%, transparent)}.side-head{align-items:center;padding-bottom:6px}.side-tabs{flex:1;gap:4px;display:flex}.side-tab{color:var(--muted);background:0 0;border-color:#0000;padding:5px 12px;font-size:15px;font-weight:700}.side-tab.active{color:var(--text);background:var(--panel-2);border-color:var(--border)}.side-search{padding:2px 16px 10px}.side-search input{box-sizing:border-box;width:100%;font:inherit;border:1px solid var(--border);background:var(--panel-2);color:var(--text);border-radius:6px;padding:6px 10px;font-size:13px}.tab-content{flex-direction:column;flex:1;min-height:0;display:flex}.tab-summary{color:var(--muted);margin:0 16px 8px;font-size:12px;line-height:1.45}.tab-empty{color:var(--muted);padding:4px 0 16px;font-size:13px;line-height:1.5}.tab-empty h4{color:var(--text);margin:0 0 6px;font-size:15px}.tab-empty p{margin:0 0 14px}.tb-comments{align-items:stretch;display:inline-flex}.tb-comments .tb-key{border-top-right-radius:0;border-bottom-right-radius:0;position:relative}.tb-eye{border-left:none;border-top-left-radius:0;border-bottom-left-radius:0;align-items:center;padding:0 8px;display:inline-flex}.tb-eye.off{color:var(--muted)}.tb-unread{background:var(--danger);border-radius:50%;width:7px;height:7px;position:absolute;top:3px;right:3px}.comment-overlay{z-index:4;touch-action:none;cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22'%3E%3Cpath d='M2 2h18v12H8l-6 5z' fill='%23ffb020' stroke='%231a1300' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E") 2 20,crosshair;position:absolute;inset:0}.comment-drag{border:1.5px dashed var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);pointer-events:none;position:absolute}.comment-layer{z-index:6;pointer-events:none;position:absolute;inset:0;overflow:hidden}.comment-box{border:1.5px dashed var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent);border-radius:4px;position:absolute}.comment-pin{color:#111;pointer-events:auto;cursor:pointer;border:2px solid #fff;border-radius:50% 50% 50% 4px;width:26px;height:26px;padding:0;font-size:10px;font-weight:800;position:absolute;box-shadow:0 2px 8px #00000059}.comment-pin:hover,.comment-pin.open{outline:2px solid var(--accent);transform:scale(1.15)}.comment-pin.gone{opacity:.75;border-style:dashed}.comment-pin-count{background:var(--panel);min-width:14px;height:14px;color:var(--text);border:1px solid var(--border);border-radius:7px;padding:0 3px;font-size:9px;line-height:14px;position:absolute;bottom:-6px;right:-8px}.comment-pin-dot{background:var(--danger);border:1.5px solid #fff;border-radius:50%;width:9px;height:9px;position:absolute;top:-4px;right:-4px}.comment-card{pointer-events:auto;background:var(--panel);width:300px;max-height:min(460px,100% - 16px);color:var(--text);border:1px solid var(--border);box-shadow:0 10px 30px var(--shadow-strong);border-radius:10px;padding:10px 12px;font-size:13px;position:absolute;overflow-y:auto}.comment-card-head{align-items:center;gap:6px;margin-bottom:8px;display:flex}.comment-card-on{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;overflow:hidden}.comment-card-head strong+.comment-resolve{margin-left:auto}.comment-resolve{white-space:nowrap;padding:2px 8px;font-size:11px}.comment-resolve:not(.on){color:#22c55e;background:0 0;border-color:#22c55e}.comment-x{color:var(--muted);background:0 0;border:none;padding:2px 4px}.comment-messages{flex-direction:column;gap:10px;margin-bottom:8px;display:flex}.comment-message{gap:8px;display:flex}.comment-avatar{color:#111;border-radius:50%;flex:none;justify-content:center;align-items:center;width:24px;height:24px;font-size:10px;font-weight:800;display:inline-flex;overflow:hidden}.comment-avatar img{object-fit:cover;width:100%;height:100%;display:block}.comment-pin-pic{object-fit:cover;border-radius:inherit;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.comment-body{flex:1;min-width:0}.comment-meta{align-items:baseline;gap:6px;font-size:12px;display:flex}.comment-meta>span{color:var(--muted);font-size:11px}.comment-own{opacity:0;gap:2px;margin-left:auto;display:inline-flex}.comment-message:hover .comment-own{opacity:1}.comment-own button{color:var(--muted);background:0 0;border:none;padding:0 3px;font-size:11px}.comment-own button:hover{color:var(--text)}.comment-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45}.comment-mention{color:var(--accent-ink);font-weight:600}.comment-input{position:relative}.comment-input textarea{box-sizing:border-box;resize:none;width:100%;font:inherit;border:1px solid var(--border);background:var(--panel-2);color:var(--text);border-radius:6px;max-height:160px;padding:6px 8px;font-size:13px}.comment-input-actions{justify-content:flex-end;gap:6px;margin-top:6px;display:flex}.comment-input-actions button{padding:3px 10px;font-size:12px}.comment-cancel{background:0 0}.comment-mentions{background:var(--panel);border:1px solid var(--border);box-shadow:0 6px 18px var(--shadow-strong);border-radius:8px;flex-direction:column;margin-top:4px;padding:3px;display:flex}.comment-mentions button{text-align:left;background:0 0;border:none;padding:4px 8px;font-size:12px}.comment-mentions button.active{background:var(--hover)}.comment-name{color:var(--muted);flex-direction:column;gap:4px;margin-bottom:8px;font-size:12px;display:flex}.comment-name input{font:inherit;border:1px solid var(--border);background:var(--panel-2);color:var(--text);border-radius:6px;padding:5px 8px;font-size:13px}.comment-name input.error{border-color:var(--danger)}.comment-resolved-note{color:var(--muted);font-size:12px}.comment-row{text-align:left;border:none;border-bottom:1px solid var(--border);background:0 0;border-radius:0;gap:10px;width:100%;padding:10px 6px;display:flex}.comment-row.resolved{opacity:.7}.comment-row-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.comment-row-top{align-items:center;gap:6px;font-size:13px;display:flex}.comment-row-top em{color:var(--muted);font-size:12px}.comment-row-time{color:var(--muted);margin-left:auto;font-size:11px}.comment-row-dot{background:var(--danger);border-radius:50%;width:8px;height:8px}.comment-row-text{color:var(--text);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;display:-webkit-box;overflow:hidden}.comment-row-meta{color:var(--muted);font-size:11px}.comment-reopen{color:var(--accent-ink);cursor:pointer}.comment-resolved-toggle{color:var(--muted);background:0 0;border:none;margin-top:12px;padding:4px 0;font-size:12px;font-weight:700}.toolbar:is([data-fit="1"],[data-fit="2"],[data-fit="3"],[data-fit="4"]) .save-status:not(.error) .save-label,.toolbar:is([data-fit="2"],[data-fit="3"],[data-fit="4"]) .tb-side-label,.toolbar:is([data-fit="3"],[data-fit="4"]) .tb-add-label,.toolbar:is([data-fit="3"],[data-fit="4"]) .tb-back .tb-label,.toolbar[data-fit="4"] .tb-total{display:none}.toolbar:is([data-fit="2"],[data-fit="3"],[data-fit="4"]) .tb-svg,.toolbar:is([data-fit="3"],[data-fit="4"]) .tb-group .ico{margin-right:0}.toolbar[data-fit="4"] .tb-title:not(.editing){flex-shrink:1;min-width:60px}.tb-count{background:var(--panel);border:1px solid var(--border);border-radius:9px;margin-left:6px;padding:0 6px;font-size:11px;font-weight:700;line-height:16px}.toolbar button.tb-active .tb-count{background:0 0;border-color:currentColor}.tb-menu button.open{background:var(--hover)}.line-card{border-left:4px solid var(--card-border);padding:8px 12px 10px}.line-card-top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:2px;display:flex}.line-card-use{color:var(--card-muted);white-space:nowrap;font-size:11px}.line-card-text{font-size:14px}.react-flow__node>:first-child{transition:filter .2s,translate .18s}.react-flow__node.dragging>:first-child{filter:drop-shadow(0 10px 14px var(--shadow-strong))}.react-flow__node-section.dragging>:first-child{filter:drop-shadow(0 6px 10px var(--shadow-strong))}@media (prefers-reduced-motion:reduce){.react-flow__node>:first-child{transition:none}}.drawer-slot{display:contents}.drawer-slot.in>.glossary{animation:.26s cubic-bezier(.2,.8,.2,1) backwards drawer-in}.drawer-slot.in>.glossary>*{animation:.3s cubic-bezier(.2,.8,.2,1) 60ms backwards fade-up}.drawer-slot.swap>.glossary>*{animation:.2s cubic-bezier(.2,.8,.2,1) backwards fade-up}.drawer-slot.out>.glossary{pointer-events:none;animation:.18s cubic-bezier(.4,0,1,1) forwards drawer-out}@keyframes drawer-in{0%{opacity:0;transform:translate(36px)}}@keyframes drawer-out{to{opacity:0;transform:translate(28px)}}@keyframes fade-up{0%{opacity:0;transform:translateY(6px)}}.comment-card{animation:.24s cubic-bezier(.3,1.35,.5,1) backwards card-pop}@keyframes card-pop{0%{opacity:0;transform:scale(.88)}}.comment-message{animation:.24s cubic-bezier(.2,.8,.2,1) 50ms backwards fade-up}.comment-mentions{transform-origin:0 0;animation:.16s cubic-bezier(.3,1.35,.5,1) backwards card-pop}.comment-box{animation:.16s ease-out backwards fade-in}@keyframes fade-in{0%{opacity:0}}.comment-pin{transition:transform .2s cubic-bezier(.3,1.6,.5,1),box-shadow .2s,outline-color .2s;animation:.34s cubic-bezier(.3,1.5,.5,1) backwards pin-in}.comment-pin:hover,.comment-pin.open{box-shadow:0 6px 16px #0006}@keyframes pin-in{0%{opacity:0;scale:0}}.comment-pin-dot,.comment-row-dot,.tb-unread{animation:2.4s ease-in-out infinite unread-pulse}@keyframes unread-pulse{0%,60%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--danger) 55%, transparent)}30%{box-shadow:0 0 0 5px color-mix(in srgb, var(--danger) 0%, transparent)}}.comment-row{animation:fade-up .26s calc(80ms + var(--i,0) * 30ms) cubic-bezier(.2, .8, .2, 1) backwards;transition:background-color .15s}.node-ghost .react-flow__handle,.node-ghost .react-flow__resize-control,.node-ghost .rotate-handle,.node-ghost .tilt-handle,.node-ghost .panel-addbar{display:none!important}.comment-layer.leaving .comment-pin,.comment-layer.leaving .comment-card,.comment-layer.leaving .comment-box{pointer-events:none;animation:.24s cubic-bezier(.5,0,.75,0) forwards shrink-out}@keyframes shrink-out{0%{opacity:1;scale:1}25%{opacity:1;scale:1.06}to{opacity:0;scale:0}}.canvas.tool-move .react-flow__node:not(.react-flow__node-section):not(.react-flow__node-anchor):is(:hover,[data-held])>:first-child{filter:drop-shadow(0 6px 10px var(--shadow));translate:0 -2px}.canvas.tool-move .react-flow__node.dragging:hover>:first-child{filter:drop-shadow(0 10px 14px var(--shadow-strong));translate:0}.comment-card.closing{pointer-events:none;animation:.15s cubic-bezier(.5,0,.75,0) forwards card-out}@keyframes card-out{to{opacity:0;transform:scale(.86)}}[data-floating]{--menu-from:0 -4px;transform-origin:0 0;animation:.14s cubic-bezier(.2,.8,.2,1) backwards menu-in}[data-floating=above]{--menu-from:0 4px;transform-origin:0 100%}[data-floating=right]{--menu-from:-4px 0}[data-floating=left]{--menu-from:4px 0;transform-origin:100% 0}.context-menu{--menu-from:0 -3px;transform-origin:0 0;animation:.14s cubic-bezier(.2,.8,.2,1) backwards menu-in}.context-submenu{--menu-from:-4px 0}@keyframes menu-in{0%{opacity:0;scale:.95;translate:var(--menu-from)}}.tb-menu.closing,.context-menu.closing{pointer-events:none;animation:.11s ease-in forwards menu-out}@keyframes menu-out{to{opacity:0;scale:.96}}.tb-menu button,.context-menu button{transition:background-color .12s}.react-flow__node-toolbar,.marker-panel{animation:.18s cubic-bezier(.2,.8,.2,1) backwards toolbar-in}.selection-bar{animation:.2s cubic-bezier(.2,.8,.2,1) backwards toolbar-in-up}@keyframes toolbar-in{0%{opacity:0;translate:0 6px}}@keyframes toolbar-in-up{0%{opacity:0;translate:0 10px}}.swatch,.marker-size{transition:scale .16s cubic-bezier(.3,1.6,.5,1),border-color .16s,box-shadow .16s}.react-flow__node-toolbar .swatch,.react-flow__node-toolbar .marker-size,.marker-panel .swatch,.marker-panel .marker-size{animation:swatch-in .24s calc(40ms + var(--i,0) * 25ms) cubic-bezier(.3, 1.6, .5, 1) backwards}.react-flow__node-toolbar.closing,.marker-panel.closing{pointer-events:none;animation:.13s cubic-bezier(.5,0,.75,0) forwards toolbar-out}.react-flow__node-toolbar.closing .swatch,.react-flow__node-toolbar.closing .marker-size,.marker-panel.closing .swatch,.marker-panel.closing .marker-size{animation:.13s cubic-bezier(.5,0,.75,0) forwards swatch-out}@keyframes toolbar-out{to{opacity:0;translate:0 5px}}@keyframes swatch-out{to{opacity:0;scale:.4}}@keyframes swatch-in{0%{opacity:0;scale:0}}.swatch:hover,.marker-size:hover{scale:1.15}.swatch.active{scale:1.08}@media (prefers-reduced-motion:reduce){.drawer-slot>.glossary,.drawer-slot>.glossary>*,.comment-card,.comment-message,.comment-mentions,.comment-box,.comment-pin,.comment-pin-dot,.comment-row-dot,.tb-unread,.comment-row,.comment-layer.leaving *,[data-floating],.context-menu,.edge-presets,.edge-presets button,.tb-menu button,.context-menu button,.react-flow__node-toolbar,.marker-panel,.selection-bar,.swatch,.marker-size,.react-flow__node-toolbar.closing *,.marker-panel.closing *,.react-flow__node>:first-child{transition:none!important;animation:none!important}.canvas.tool-move .react-flow__node:hover>:first-child{translate:none!important}}.tool-palettes{flex-direction:column;gap:10px;display:flex}.canvas:not(.tool-move) .panel-addbar{display:none}.canvas.tool-move .react-flow__resize-control,.canvas.tool-move .rotate-handle,.canvas.tool-move .tilt-handle{visibility:hidden}.canvas.tool-transform .react-flow__node *{pointer-events:none!important}.canvas.tool-transform .react-flow__node .react-flow__resize-control,.canvas.tool-transform .react-flow__node .react-flow__resize-control *,.canvas.tool-transform .react-flow__node .rotate-handle,.canvas.tool-transform .react-flow__node .rotate-handle *,.canvas.tool-transform .react-flow__node .tilt-handle,.canvas.tool-transform .react-flow__node .tilt-handle *,.canvas.tool-transform .react-flow__node-section .section-drag,.canvas.tool-transform .react-flow__node-section .section-edge{pointer-events:all!important}.canvas.tool-transform .react-flow__handle,.canvas.tool-transform .node-toolbar,.canvas.tool-transform .panel-addbar{display:none}.canvas.tool-transform .react-flow__node{cursor:default}.canvas.tool-hand .react-flow__node,.canvas.tool-hand .react-flow__node *,.canvas.tool-hand .react-flow__edge,.canvas.tool-hand .react-flow__edgelabel-renderer *,.canvas.tool-hand .group-outline,.canvas.tool-hand .group-outline *,.canvas.tool-hand .react-flow__nodesselection-rect{pointer-events:none!important}.canvas.tool-hand .react-flow__resize-control,.canvas.tool-hand .rotate-handle,.canvas.tool-hand .tilt-handle,.canvas.tool-hand .react-flow__handle,.canvas.tool-hand .node-toolbar,.canvas.tool-hand .panel-addbar{display:none}:root[data-theme=dark]{--pill:#34495c;--pill-hover:#3e566b;--pill-group:#283847;--glass:#192734e0;--spring:cubic-bezier(.34, 1.56, .64, 1)}:root,:root[data-theme=light]{--pill:#e9edf1;--pill-hover:#dde3e9;--pill-group:#eef1f4;--glass:#ffffffe0;--spring:cubic-bezier(.34, 1.56, .64, 1)}:is(.toolbar .tb-key,.toolbar .tb-eye,.toolbar .tb-group button,.panel-addbar button,.script-actions button,.dialog-actions button,.tab-empty button,.span-editor-actions button,.comment-input-actions button,.board-card-actions button,.selection-bar button:not(.selection-clear),.react-flow__node-toolbar button:not(.swatch):not(.marker-size),.help-pager button,.help-close,.side-tab,button.primary){box-shadow:none;transition:background-color .15s ease, border-color .15s ease, color .15s ease, box-shadow .2s ease, filter .15s ease, scale .28s var(--spring);border:1px solid #0000;border-radius:999px}:is(.toolbar .tb-key,.toolbar .tb-eye,.panel-addbar button,.script-actions button,.dialog-actions button,.tab-empty button,.span-editor-actions button,.comment-input-actions button,.help-pager button,.help-close,.board-card-actions button):not(.primary):not(.tb-active){background:var(--pill)}:is(.toolbar .tb-group button,.selection-bar button:not(.selection-clear),.react-flow__node-toolbar button:not(.swatch):not(.marker-size)):not(.tb-active){background:0 0}:is(.toolbar .tb-key,.toolbar .tb-eye,.toolbar .tb-group button,.panel-addbar button,.script-actions button,.dialog-actions button,.tab-empty button,.span-editor-actions button,.comment-input-actions button,.board-card-actions button,.selection-bar button:not(.selection-clear),.react-flow__node-toolbar button:not(.swatch):not(.marker-size),.help-pager button,.help-close,.side-tab):not(.primary):not(.tb-active):not(:disabled):hover{background:color-mix(in srgb, var(--accent) 20%, color-mix(in srgb, var(--pill-hover) 70%, transparent));-webkit-backdrop-filter:blur(10px)saturate(1.8);backdrop-filter:blur(10px)saturate(1.8);border-color:color-mix(in srgb, var(--accent) 40%, transparent);box-shadow:0 4px 16px color-mix(in srgb, var(--accent) 22%, transparent)}:is(.toolbar .tb-key,.toolbar .tb-eye,.toolbar .tb-group button,.panel-addbar button,.script-actions button,.dialog-actions button,.tab-empty button,.span-editor-actions button,.comment-input-actions button,.board-card-actions button,.selection-bar button:not(.selection-clear),.react-flow__node-toolbar button:not(.swatch):not(.marker-size),.help-pager button,.help-close,.side-tab,button.primary):not(:disabled):hover{scale:1.04}:is(.toolbar .tb-key,.toolbar .tb-eye,.toolbar .tb-group button,.panel-addbar button,.script-actions button,.dialog-actions button,.tab-empty button,.span-editor-actions button,.comment-input-actions button,.board-card-actions button,.selection-bar button:not(.selection-clear),.react-flow__node-toolbar button:not(.swatch):not(.marker-size),.help-pager button,.help-close,.side-tab,button.primary):not(:disabled):active{filter:brightness(1.3);transition-duration:80ms;scale:.93}.panel-addbar button{background:var(--panel);box-shadow:0 2px 10px var(--shadow);padding:3px 11px}button.primary,.toolbar button.tb-active{background:var(--accent);color:var(--on-accent);box-shadow:0 4px 14px color-mix(in srgb, var(--accent) 35%, transparent);border-color:#0000}button.primary:hover:not(:disabled),.toolbar button.tb-active:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 6px 18px color-mix(in srgb, var(--accent) 45%, transparent)}.toolbar .tb-group{background:var(--pill-group);border-radius:999px;gap:4px;padding:3px}.toolbar .tb-group button{padding:4px 12px}.toolbar .tb-comments{transition:scale .28s var(--spring);border-radius:999px;gap:0}.toolbar .tb-comments:hover{scale:1.04}.toolbar .tb-comments:has(button:active:not(:disabled)){transition-duration:80ms;scale:.95}.toolbar .tb-comments>button{scale:none!important}.toolbar .tb-comments>button.tb-key{border-top-right-radius:0;border-bottom-right-radius:0;padding-right:11px}.toolbar .tb-comments>button.tb-eye{border-left:1px solid color-mix(in srgb, var(--text) 14%, transparent);border-top-left-radius:0;border-bottom-left-radius:0;padding:0 12px 0 10px}.toolbar .tb-key{padding:6px 13px}.tb-menu,.context-menu,.node-toolbar,.selection-bar{background:var(--glass);-webkit-backdrop-filter:blur(16px)saturate(1.5);backdrop-filter:blur(16px)saturate(1.5);border:1px solid color-mix(in srgb, var(--border) 70%, transparent);box-shadow:0 12px 32px var(--shadow-strong)}.tb-menu,.context-menu{border-radius:16px;padding:6px}.node-toolbar,.selection-bar{border-radius:999px}.selection-bar{padding:5px 6px}.node-toolbar{padding:4px 6px}.tb-menu button,.context-menu button{transition:background-color .12s ease, translate .2s var(--spring);border-radius:10px}.tb-menu button:hover:not(:disabled),.context-menu button:hover:not(:disabled),.tb-menu button.open,.context-menu button.open{background:color-mix(in srgb, var(--accent) 18%, transparent)}.tb-menu button:hover:not(:disabled),.context-menu button:hover:not(:disabled){translate:2px}.context-menu button.danger:hover:not(:disabled){background:var(--danger);color:#fff}.context-sep{margin:4px 10px}.menu-check{color:var(--accent-ink)}.side-tab.active{background:var(--pill);border-color:#0000}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){button,button:hover,button:active{transition:none!important;translate:none!important;scale:none!important}}.tool-palettes{--xy-controls-button-background-color:#2c3d4e;--xy-controls-button-background-color-hover:#3a4f63;--xy-controls-button-color:#eef3f7;--xy-controls-button-color-hover:#fff;--xy-controls-button-border-color:#3a4c5e}:root[data-theme=light] .tool-palettes{--xy-controls-button-background-color:#2d3036;--xy-controls-button-background-color-hover:#3b3f47;--xy-controls-button-border-color:#41444c}.tool-palettes .react-flow__controls{box-shadow:0 6px 18px var(--shadow-strong);border-radius:12px;overflow:hidden}.canvas.tool-hand.review .react-flow__node :is(.audio-chip>button:first-child,.play-button,.waveform){cursor:pointer;pointer-events:all!important}.canvas.review .audio-chip-x{display:none}.tb-review{color:var(--text);background:color-mix(in srgb, var(--accent) 24%, transparent);border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);white-space:nowrap;border-radius:999px;padding:4px 11px;font-size:12px;font-weight:600}.tb-title-static{text-overflow:ellipsis;max-width:320px;padding:4px 6px;overflow:hidden}.review-gate{text-align:center;padding:24px;line-height:1.5}.review-name{background:var(--panel);border:1px solid var(--border);width:min(420px,100%);box-shadow:0 12px 32px var(--shadow-strong);text-align:left;border-radius:16px;flex-direction:column;gap:12px;padding:24px;display:flex}.review-name h2{color:var(--text);margin:0;font-size:18px}.review-name button:not(.primary){background:var(--pill);border-color:#0000;border-radius:999px;padding:8px 14px}.review-name button:not(.primary):hover:not(:disabled){background:color-mix(in srgb, var(--accent) 16%, var(--pill))}.review-name p{color:var(--muted);margin:0;font-size:13px}.review-name input,.review-link-row input{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;outline:none;padding:8px 10px}.review-name input:focus,.review-link-row input:focus{border-color:var(--accent-ink)}.review-links{width:min(620px,100vw - 32px)}.review-links-note{color:var(--muted);margin:0 0 10px;font-size:12px}.people-heading{margin:18px 0 4px;font-size:14px}.person-online{color:#22c55e;font-size:12px;font-weight:600}.person-avatar.pending{background:var(--panel-2);color:var(--muted)}.person-name.pending{color:var(--muted);font-style:italic;font-weight:400}.people-list{flex-direction:column;gap:8px;margin:8px 0 14px;display:flex}.person-row{align-items:center;gap:10px;display:flex}.person-avatar{background:var(--accent);color:var(--on-accent);cursor:default;flex:none;justify-content:center;align-items:center;display:inline-flex}.person-name{flex:1;font-weight:600}.person-note{color:var(--muted);font-size:13px;font-weight:400}.person-row button{padding:3px 9px;font-size:12px}.people-add{gap:8px;display:flex}.people-add input{flex:1;width:auto}.people-add-hint{margin:6px 0 0}.person-detail{color:var(--muted);font-size:12px;font-weight:400;display:block}.people-add select{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;flex:1;padding:6px 10px}.review-links-list{flex-direction:column;gap:8px;margin:8px 0 4px;display:flex}.review-links-empty{color:var(--muted);margin:4px 0;font-size:13px}.review-link-row{grid-template-columns:1fr auto auto;align-items:center;gap:6px;display:grid}.review-link-for{grid-column:1/-1;font-size:13px;font-weight:600}.review-link-for .review-link-date{color:var(--muted);font-weight:400}.review-link-new{margin-top:12px}.review-link-new input{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;flex:1;padding:6px 10px}.review-link-row input{min-width:0;font-size:12px}.review-link-date{color:var(--muted);grid-column:1/-1;font-size:11px}.review-panel{z-index:8;background:var(--glass);-webkit-backdrop-filter:blur(16px)saturate(1.5);backdrop-filter:blur(16px)saturate(1.5);border:1px solid color-mix(in srgb, var(--border) 70%, transparent);width:310px;max-height:calc(100% - 110px);box-shadow:0 12px 32px var(--shadow-strong);color:var(--text);border-radius:16px;padding:14px 16px 12px;font-size:13px;line-height:1.45;animation:.3s cubic-bezier(.2,.8,.2,1) backwards fade-up;position:absolute;top:12px;left:12px;overflow-y:auto}.review-panel-collapsed{cursor:pointer;width:auto;font:inherit;border-radius:999px;align-items:center;gap:10px;padding:8px 14px;font-size:13px;display:flex}.review-panel-head{align-items:center;gap:8px;margin-bottom:6px;display:flex}.review-panel-title{font-size:15px;font-weight:700}.review-count{color:var(--accent-ink);margin-right:auto;font-size:12px;font-weight:600}.review-panel-collapsed .review-count{margin-right:0}.review-hide,.review-back{background:var(--pill);border:none;border-radius:999px;padding:3px 10px;font-size:12px}.review-hide:hover,.review-back:hover{background:var(--pill-hover)}.review-panel h2{margin:4px 0;font-size:17px}.review-lead{color:var(--muted);margin:0 0 12px}.review-lead b{color:var(--text)}.review-steps{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.review-step{background:color-mix(in srgb, var(--panel-2) 80%, transparent);border:1px solid #0000;border-radius:12px;gap:10px;padding:10px;display:flex}.review-step:not(.done){border-color:color-mix(in srgb, var(--accent) 35%, transparent)}.review-step-mark{background:var(--accent);width:24px;height:24px;color:var(--on-accent);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:700;display:grid}.review-step.done .review-step-mark{animation:step-done .4s var(--spring);background:#22c55e}@keyframes step-done{0%{scale:.4}}.review-step-body{flex:1;min-width:0}.review-step h3{margin:1px 0 3px;font-size:14px}.review-step.done h3{color:var(--muted)}.review-optional{color:var(--muted);font-size:12px;font-weight:400}.review-step p{color:var(--muted);margin:0 0 8px}.review-step p b{color:var(--text)}.review-step-foot{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.review-step-foot button{margin-left:auto}.review-panel button.small{border-radius:999px;padding:4px 12px;font-size:12px}.review-panel button.small:not(.primary){background:var(--pill);border-color:#0000}.review-panel button.small:not(.primary):hover{background:var(--pill-hover)}.review-meter{flex-direction:column;gap:3px;min-width:110px;display:flex}.review-meter-bar{background:var(--pill);border-radius:999px;height:5px;overflow:hidden}.review-meter-bar>span{border-radius:inherit;background:#22c55e;height:100%;transition:width .35s;display:block}.review-meter-label{color:var(--muted);font-size:11px}.review-thanks{color:var(--text);background:#22c55e29;border-radius:12px;margin:12px 0 0;padding:10px 12px}.review-panel-foot{text-align:center;margin-top:10px}.review-link{color:var(--accent-ink);font:inherit;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline}.review-link:hover:not(:disabled){color:var(--accent-hover);background:0 0}.review-music{width:340px}.review-songs{flex-direction:column;gap:10px;display:flex}.review-song{background:color-mix(in srgb, var(--panel-2) 85%, transparent);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);--audio-color:var(--accent-ink);border-radius:12px;flex-direction:column;gap:8px;padding:12px;display:flex}.review-song.answered{border-color:#0000}.review-song-top{align-items:center;gap:10px;display:flex}.play-button.big{width:40px;height:40px;font-size:14px}.review-song-names{min-width:0}.review-song-title{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.review-song-sub,.review-song-uses{color:var(--muted);font-size:12px}.review-song-uses .review-link+.review-link:before{content:", ";color:var(--muted);margin-right:3px;text-decoration:none;display:inline-block}.verdict{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.verdict-yes,.verdict-no{background:0 0;border:1.5px solid;border-radius:999px;flex:1;padding:7px 10px;font-size:13px;font-weight:700;transition:background-color .15s,color .15s}.verdict-yes{color:#22c55e;border-color:#22c55e}.verdict-yes:hover:not(:disabled){color:#fff;background:#22c55e}.verdict-no{border-color:color-mix(in srgb, var(--danger) 80%, transparent);color:var(--danger)}.verdict-no:hover:not(:disabled){background:var(--danger);color:#fff}.verdict-done{border-radius:10px;padding:6px 10px;font-size:13px}.verdict-done.approved{background:#22c55e2e}.verdict-done.declined{background:color-mix(in srgb, var(--danger) 14%, transparent)}.verdict-status{margin-right:auto;font-weight:700}.verdict-done.approved .verdict-status{color:#22c55e}.verdict-done.declined .verdict-status{color:var(--danger)}.verdict-change{background:var(--pill);border:none;border-radius:999px;padding:2px 9px;font-size:12px}.verdict-change:hover:not(:disabled){background:var(--pill-hover)}.verdict-why{flex-direction:column;gap:8px;display:flex}.verdict-why label{flex-direction:column;gap:5px;font-size:13px;font-weight:600;display:flex}.verdict-optional{color:var(--muted);font-weight:400}.verdict-why textarea{font:inherit;resize:vertical;border:1px solid var(--accent);background:var(--bg);color:var(--text);border-radius:8px;outline:none;padding:7px 9px;font-weight:400}.verdict-buttons{justify-content:flex-end;gap:6px;display:flex}.verdict-buttons button{border-radius:999px;padding:4px 12px;font-size:12px}.declined-why{color:var(--muted);flex-basis:100%;margin:2px 0 0;font-size:12px;font-style:italic}.audio-declined{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.declined-pill{color:#fff;background:var(--danger);border-radius:999px;padding:1px 9px;font-size:11px;font-weight:600}.declined-clear{background:var(--pill);border:none;border-radius:999px;padding:0 8px;font-size:11px}.review-dock-wrap{flex-direction:column;align-items:center;gap:8px;width:max-content;max-width:calc(100vw - 40px);display:flex}.review-dock{background:var(--glass);-webkit-backdrop-filter:blur(16px)saturate(1.5);backdrop-filter:blur(16px)saturate(1.5);border:1px solid color-mix(in srgb, var(--border) 70%, transparent);box-shadow:0 12px 32px var(--shadow-strong);border-radius:999px;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:7px;display:flex}.review-dock>div{align-items:center;gap:4px;display:flex}.review-dock>div+div{border-left:1px solid var(--border);padding-left:10px}.review-dock button{background:var(--pill);white-space:nowrap;border:1px solid #0000;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:600}.review-dock button:hover:not(:disabled){background:var(--pill-hover)}.review-dock button.primary,.review-dock button.on{background:var(--accent);color:var(--on-accent)}.review-dock button.primary:hover:not(:disabled),.review-dock button.on:hover:not(:disabled){background:var(--accent-hover)}.review-dock button:disabled{opacity:.4}.review-zoom button[aria-label]{width:36px;padding:8px 0;font-size:16px;line-height:1}.review-shot-now{text-align:center;font-variant-numeric:tabular-nums;min-width:118px;font-weight:700}.review-shot-of{color:var(--muted);font-weight:400}.review-shot-pick{cursor:text;border-radius:4px}.review-shot-pick:hover{background:var(--pill-hover)}.review-shot-input{width:3.2ch;font:inherit;text-align:center;color:var(--text);background:var(--bg);border:1px solid var(--accent);border-radius:4px;outline:none;padding:1px 2px}.review-dock-hint{background:var(--accent);color:var(--on-accent);box-shadow:0 8px 22px var(--shadow-strong);border-radius:999px;padding:7px 14px;font-size:13px;animation:.25s cubic-bezier(.2,.8,.2,1) backwards fade-up}.canvas.review .toast{bottom:96px}.canvas.review .react-flow__node :is(.chip:not(.chip-empty),.pscript-tag .tb-menu-wrap>button){text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.canvas.review.term-hover .react-flow__pane{cursor:help}.term-tip{z-index:200;background:var(--glass);-webkit-backdrop-filter:blur(16px)saturate(1.5);backdrop-filter:blur(16px)saturate(1.5);border:1px solid color-mix(in srgb, var(--border) 70%, transparent);width:max-content;max-width:280px;box-shadow:0 10px 26px var(--shadow-strong);color:var(--text);pointer-events:none;border-radius:10px;padding:8px 11px;font-size:12px;line-height:1.45;position:fixed}.term-tip p{color:var(--muted);margin:3px 0 0}.term-tip-name{font-weight:600}.tour{z-index:150;position:fixed;inset:0}.tour-spot{box-shadow:0 0 0 3px var(--accent), 0 0 0 9999px #040a108c;pointer-events:none;border-radius:14px;transition:all .3s cubic-bezier(.2,.8,.2,1);position:fixed}.tour-dim{background:#040a108c;position:fixed;inset:0}.tour-card{background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:16px;padding:16px 18px 14px;animation:.25s cubic-bezier(.2,.8,.2,1) backwards fade-up;position:fixed;box-shadow:0 16px 40px #0006}.tour-step{color:var(--accent-ink);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:700}.tour-card h3{margin:4px 0 6px;font-size:16px}.tour-card p{color:var(--muted);margin:0 0 14px;font-size:13px;line-height:1.5}.tour-buttons{justify-content:flex-end;gap:6px;display:flex}.tour-buttons button{border-radius:999px;padding:6px 14px}.tour-skip{color:var(--muted);margin-right:auto;background:0 0!important;border:none!important;padding-left:0!important}.tour-offer p{color:var(--muted);line-height:1.5}.help-button{transition:scale .35s var(--spring), background-color .2s ease, color .2s ease, box-shadow .2s ease}.help-button:hover:not(:disabled){scale:1.14}.help-button:active:not(:disabled){transition-duration:80ms;scale:.86}.help-button .help-glyph{display:inline-block}.help-button:hover .help-glyph{animation:.65s both help-wiggle}@keyframes help-wiggle{0%{rotate:0deg;scale:1}20%{rotate:-18deg;scale:1.18}45%{rotate:13deg}65%{rotate:-7deg}85%{rotate:3deg}to{rotate:0deg;scale:1}}.help-button.open,.help-button.open:hover{background:var(--accent);color:var(--on-accent);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 30%, transparent)}@media (prefers-reduced-motion:reduce){.help-button,.help-button:hover,.help-button:active{transition:none;scale:none}.help-button:hover .help-glyph,.help-button.glow{animation:none}}.tool-palettes .help-corner .help-button{border-radius:50%;width:46px;height:46px;font-size:22px}.tool-palettes .help-corner{border-radius:50%}.tool-palettes .help-box{overflow:visible}.help-box .help-button{border-radius:12px;font-size:15px;font-weight:800}.help-button-wrap{display:inline-flex;position:relative}.help-button.glow{animation:1.6s ease-in-out infinite help-glow}@keyframes help-glow{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 70%, transparent)}50%{box-shadow:0 0 0 9px color-mix(in srgb, var(--accent) 0%, transparent)}}.help-intro{white-space:nowrap;color:var(--on-accent);background:var(--accent);box-shadow:0 8px 22px var(--shadow-strong);border-radius:999px;align-items:center;gap:8px;padding:7px 8px 7px 12px;font-size:13px;font-weight:600;animation:.3s backwards fade-up;display:flex;position:absolute;top:50%;left:calc(100% + 12px);translate:0 -50%}.help-intro button{color:inherit;background:0 0;border:none;padding:0 6px;font-size:12px}.help-bar-link{color:var(--accent-ink);font-size:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.help-bar-link:hover:not(:disabled){background:0 0;text-decoration:underline}.help-backdrop{z-index:1500;background:#00000073;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.help-window{background:var(--panel);width:min(1120px,100%);height:min(780px,100%);color:var(--text);border:1px solid var(--border);border-radius:16px;grid-template-columns:270px 1fr;display:grid;position:relative;overflow:hidden;box-shadow:0 24px 64px #00000059}.help-nav{background:var(--panel-2);border-right:1px solid var(--border);flex-direction:column;min-height:0;display:flex}.help-nav-head{padding:18px 16px 10px}.help-nav-head h2{margin:0 0 10px;font-size:20px}.help-search{width:100%;margin:0}.help-nav-list{flex:1;padding:0 10px 16px;overflow-y:auto}.help-nav-section{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:16px 6px 4px;font-size:11px;font-weight:700}.help-nav-item{text-align:left;width:100%;transition:background-color .12s ease, translate .2s var(--spring);background:0 0;border:none;border-radius:999px;padding:7px 12px;font-size:13px;display:block}.help-nav-item:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 12%, transparent);translate:2px}.help-nav-item.on,.help-nav-item.on:hover{background:color-mix(in srgb, var(--accent) 20%, transparent);color:var(--text);font-weight:600}.help-nav-term span{color:var(--muted)}.help-none{color:var(--muted);padding:12px 8px;font-size:13px}.help-body{padding:28px 36px 24px;font-size:15px;line-height:1.55;position:relative;overflow-y:auto}.help-body h1{margin:0 40px 14px 0;font-size:26px}.help-close{z-index:1;width:32px;height:32px;color:var(--muted);place-items:center;padding:0;font-size:14px;display:grid;position:absolute;top:16px;right:16px}.help-body p{margin:0 0 14px}.help-steps,.help-list{margin:0 0 16px;padding-left:22px}.help-steps li,.help-list li{margin-bottom:6px}.help-tip{background:color-mix(in srgb, var(--accent) 10%, var(--panel));border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);border-radius:10px;padding:10px 14px;font-size:14px}.help-tip:before{content:"Tip: ";font-weight:700}.help-figure{margin:4px 0 18px}.help-figure img{border:1px solid var(--border);max-width:100%;height:auto;box-shadow:0 6px 18px var(--shadow);background:#f3f5f7;border-radius:10px;display:block}.help-figure figcaption{color:var(--muted);margin-top:8px;font-size:13px}.help-num{vertical-align:1px;background:var(--accent);width:20px;height:20px;color:var(--on-accent);border-radius:50%;place-items:center;margin-right:2px;font-size:12px;font-weight:700;display:inline-grid}.help-body kbd{border:1px solid var(--border-strong);background:var(--panel-2);text-align:center;border-bottom-width:2px;border-radius:5px;min-width:1.6em;padding:0 6px;font:600 12px/1.6 -apple-system,BlinkMacSystemFont,Inter,sans-serif;display:inline-block}.help-keys{border-collapse:collapse;width:100%;font-size:14px}.help-keys td{border-bottom:1px solid var(--border);vertical-align:top;padding:7px 10px}.help-keys td:first-child{white-space:nowrap;width:1%}.help-glossary .glossary-search{width:100%;margin:0 0 12px}.help-glossary .glossary-body{padding:0;overflow:visible}.help-pager{border-top:1px solid var(--border);justify-content:space-between;gap:12px;margin-top:28px;padding-top:16px;display:flex}.help-pager button{font-size:13px}@media (width<=720px){.help-window{grid-template-rows:40% 1fr;grid-template-columns:1fr}.help-nav{border-right:none;border-bottom:1px solid var(--border)}}.auth-page{background:var(--bg);min-height:100%;color:var(--text);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:48px 16px;display:flex}.auth-corner{position:fixed;top:16px;right:16px}.dialog.auth-card{width:min(400px,100%);box-shadow:0 16px 48px var(--shadow-strong);border-radius:18px;padding:28px 28px 22px;animation:.32s cubic-bezier(.2,.8,.2,1) backwards auth-in}@keyframes auth-in{0%{opacity:0;translate:0 10px;scale:.98}}.auth-brand{letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink);margin-bottom:14px;font-size:13px;font-weight:800}.auth-card h2{margin:0 0 14px;font-size:22px}.auth-notice{background:color-mix(in srgb, var(--accent) 10%, var(--panel));border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);border-radius:10px;margin:0 0 14px;padding:10px 12px;font-size:13px;line-height:1.45}.auth-field{flex-direction:column;gap:5px;margin-bottom:14px;display:flex}.auth-label{justify-content:space-between;font-size:13px;font-weight:600;display:flex}.auth-aside{font-weight:500}.auth-hint{color:var(--muted);font-size:12px}.auth-card a{color:var(--accent-ink);text-decoration:none}.auth-card a:hover{text-decoration:underline}.auth-password{display:block;position:relative}.auth-password input{padding-right:58px}.auth-show{color:var(--muted);background:0 0;border:none;border-radius:999px;padding:3px 9px;font-size:12px;position:absolute;top:50%;right:5px;translate:0 -50%}.auth-show:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--text)}button.primary.auth-submit{width:100%;margin-top:4px;padding:10px 14px;font-size:15px}.auth-switch{text-align:center;color:var(--muted);margin:16px 0 0;font-size:13px}.auth-google{border:1px solid var(--border);background:var(--panel);transition:background-color .15s ease, border-color .15s ease, scale .28s var(--spring);border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:10px 14px;font-weight:600;display:flex;color:var(--text)!important;text-decoration:none!important}.auth-google:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--border));background:color-mix(in srgb, var(--accent) 8%, var(--panel));scale:1.02}.auth-google:active{scale:.97}.auth-or{color:var(--muted);align-items:center;gap:10px;margin:16px 0;font-size:12px;display:flex}.auth-or:before,.auth-or:after{content:"";background:var(--border);flex:1;height:1px}.auth-sent{text-align:center}.auth-sent-icon{color:var(--accent-ink);margin:4px 0 10px;font-size:34px;line-height:1}.auth-link-button{background:var(--pill);border:none;border-radius:999px;margin-top:6px;padding:6px 14px;font-size:13px;display:inline-block;color:var(--text)!important;text-decoration:none!important}.auth-outbox{border:1px dashed color-mix(in srgb, var(--accent) 50%, var(--border));background:color-mix(in srgb, var(--accent) 5%, transparent);border-radius:14px;width:min(400px,100%);padding:14px 16px;font-size:13px;line-height:1.45}.auth-outbox p{color:var(--muted);margin:6px 0}.auth-outbox-head{justify-content:space-between;align-items:center;display:flex}.auth-outbox-head button{border-radius:999px;padding:3px 10px;font-size:12px}.auth-outbox-mail{border-top:1px solid var(--border);justify-content:space-between;gap:12px;padding:7px 0;display:flex}.auth-outbox-mail a{color:var(--accent-ink);white-space:nowrap}@media (prefers-reduced-motion:reduce){.dialog.auth-card{animation:none}}.avatar-pic{color:#111;-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;place-items:center;font-weight:700;line-height:1;display:inline-grid;overflow:hidden}.avatar-pic img,.avatar img{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.avatar{overflow:hidden}button.account-button{transition:border-color .15s ease, scale .28s var(--spring);background:0 0;border:2px solid #0000;border-radius:50%;place-items:center;padding:2px;display:grid}button.account-button:hover:not(:disabled),button.account-button[aria-expanded=true]{border-color:var(--accent);background:0 0;scale:1.05}.account-menu{min-width:240px}.account-menu-head{align-items:center;gap:12px;padding:8px 10px 6px;display:flex}.account-menu-who{flex-direction:column;min-width:0;font-size:13px;line-height:1.35;display:flex}.account-menu-who strong{font-size:14px}.account-menu-who span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.profile-picture{align-items:center;gap:18px;margin-bottom:18px;display:flex}.profile-picture .avatar-pic{box-shadow:0 0 0 3px var(--panel), 0 0 0 5px color-mix(in srgb, var(--accent) 60%, transparent)}.profile-picture-buttons{gap:8px;margin-bottom:6px;display:flex}.profile-picture-buttons button{border-radius:999px;padding:7px 14px}.dialog.cropper{width:auto;max-width:calc(100vw - 32px)}.cropper-frame{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#0b0b0d;border-radius:14px;margin:4px auto 14px;position:relative;overflow:hidden}.cropper-frame:active{cursor:grabbing}.cropper-frame img{pointer-events:none;max-width:none;position:absolute}.cropper-ring{pointer-events:none;border-radius:50%;outline:2px solid #ffffffd9;position:absolute;inset:0;box-shadow:0 0 0 999px #0000008c}.cropper-zoom{color:var(--muted);align-items:center;gap:10px;display:flex}.cropper-zoom input{accent-color:var(--accent);flex:1}.handle-input{border:1px solid var(--border);background:var(--bg);color:var(--muted);border-radius:8px;align-items:center;padding-left:11px;display:flex}.handle-input:focus-within{border-color:var(--accent)}.settings-card .handle-input input{background:0 0;border:none;padding-left:2px}.settings-forgot{color:var(--muted);margin:12px 0 0;font-size:13px}button.link-button{color:var(--accent-ink);font:inherit;cursor:pointer;background:0 0;border:none;padding:0}button.link-button:hover:not(:disabled){background:0 0;text-decoration:underline}.person-handle{color:var(--muted);font-size:13px;font-weight:400}.admin-page{max-width:1200px}.admin-back{color:var(--accent-ink);font-weight:600;text-decoration:none}.admin-summary{color:var(--muted);margin:-12px 0 18px}.admin-table-wrap{border:1px solid var(--border);background:var(--panel);border-radius:14px;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:13px}.admin-table th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:12px 14px;font-size:11px;font-weight:700}.admin-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:12px 14px}.admin-table tr:last-child td{border-bottom:none}.admin-table tr.off td{opacity:.6}.admin-table tr.off td.admin-actions{opacity:1}.admin-email{color:var(--muted);font-size:12px;display:block}.admin-tag{letter-spacing:.04em;text-transform:uppercase;background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent-ink);border-radius:999px;margin-left:6px;padding:1px 7px;font-size:10px;font-weight:700;display:inline-block}.admin-tag.off{background:color-mix(in srgb, var(--danger) 16%, transparent);color:var(--danger)}.admin-used{white-space:nowrap}.admin-of{color:var(--muted)}.admin-bar{background:color-mix(in srgb, var(--text) 10%, transparent);border-radius:999px;width:120px;height:5px;margin-top:6px;display:block;overflow:hidden}.admin-bar>span{border-radius:inherit;background:var(--accent);height:100%;display:block}.admin-bar.full>span{background:var(--danger)}.admin-limit{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;padding:5px 8px}.admin-actions{text-align:right;white-space:nowrap}.admin-actions button{border-radius:999px;padding:4px 11px;font-size:12px}.review-name-small{color:var(--muted);font-size:13px}.review-name-small a{color:var(--accent-ink)}.account-page{max-width:760px}.settings-card{border:1px solid var(--border);background:var(--panel);border-radius:16px;margin-bottom:16px;padding:20px 22px}.settings-card h2{margin:0 0 14px;font-size:16px}.settings-card input{width:100%;font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;outline:none;padding:9px 11px}.settings-card input:focus{border-color:var(--accent-ink)}.settings-row{align-items:flex-start;gap:12px;display:flex}.settings-row>button{margin-top:24px}.settings-grow{flex:1}.settings-line{margin:6px 0;font-size:14px}.settings-key{min-width:110px;color:var(--muted);display:inline-block}.settings-ok{color:#22a35a;font-size:13px}.settings-bar{width:100%;height:7px;margin:8px 0 12px}.settings-card button.danger{border-radius:999px;padding:7px 14px}.account-legal{text-align:center;color:var(--muted);font-size:13px}.account-legal a,.auth-legal a,.auth-agree a,.legal a{color:var(--accent-ink);text-decoration:none}.account-legal a:hover,.auth-legal a:hover,.auth-agree a:hover,.legal a:hover{text-decoration:underline}.deletion-list{margin:4px 0 12px;font-size:13px;line-height:1.45}.deletion-list p{margin:0 0 8px}.deletion-list ul{max-height:180px;margin:0 0 10px;padding-left:18px;overflow-y:auto}.deletion-list li span{color:var(--muted)}.admin-actions button+button{margin-left:6px}.auth-agree{color:var(--muted);text-align:center;margin:10px 0 0;font-size:12px}.auth-legal{color:var(--muted);margin:0;font-size:12px}.legal-page{background:var(--bg);min-height:100%;color:var(--text);padding:48px 16px 64px}.legal{max-width:680px;margin:0 auto;font-size:15px;line-height:1.6}.legal h1{margin:18px 0 2px;font-size:30px}.legal h2{margin:28px 0 6px;font-size:18px}.legal p{margin:0 0 12px}.legal ul{margin:0 0 12px;padding-left:22px}.legal li{margin-bottom:6px}.legal-back{font-size:14px;font-weight:600}.legal-updated{color:var(--muted);font-size:13px}.legal-draft{background:color-mix(in srgb, #f5a524 16%, var(--panel));border:1px solid #f5a52473;border-radius:10px;padding:10px 14px;font-size:13px;margin-top:14px!important}.legal-other{border-top:1px solid var(--border);padding-top:16px;font-size:14px;margin-top:32px!important}.admin-import{max-width:640px;margin-top:20px}.admin-import p{margin:0 0 12px;line-height:1.5}.admin-import-note{color:var(--muted);font-size:13px}.admin-import-progress{margin:0 0 12px;font-size:13px}.admin-import-progress .admin-bar{width:100%;height:6px}.admin-import-done ul{overflow-wrap:anywhere;margin:0 0 12px;padding-left:20px;font-size:13px}
