/* NotificationsPage — the flows drawn as indented trees. */ .notify-flows { display: flex; flex-direction: column; gap: 0.75em; } .notify-flow-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5em; } .notify-flow-name { font-weight: 600; } .notify-flow-tree { margin: 0.4em 0 0; padding: 0; list-style: none; font-size: 0.9em; } .notify-node { display: flex; gap: 0.5em; padding: 0.1em 0; } .notify-node-kind { flex: none; min-width: 3.5em; color: var(--muted); } .notify-node-text { overflow-wrap: anywhere; } .notify-off { opacity: 0.6; } /* The flow list's new-flow row and each flow's actions. */ .notify-new { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.5em; } .notify-flow-head > * + * { margin-left: 0.5em; } /* FlowEditorPage — the head row, the canvas and the inspector beside it. */ .notify-editor-head { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.75em; margin-bottom: 0.5em; } .notify-editor-body { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 1em; } .notify-canvas-wrap { flex: 1 1 24em; min-width: 0; } .notify-palette { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5em; margin-bottom: 0.5em; } .notify-chip { padding: 0.2em 0.7em; border: 1.5px solid var(--border); border-radius: 999px; background: var(--bg-elev); color: var(--fg); font: inherit; cursor: grab; touch-action: none; } .notify-chip-match { border-color: var(--purple); } .notify-chip-todo { border-color: var(--green); } .notify-chip-request_reviewer { border-color: var(--green); } .notify-ghost { position: fixed; z-index: 10; padding: 0.2em 0.6em; border: 1.5px solid var(--fg); border-radius: 6px; background: var(--bg-elev); color: var(--fg); pointer-events: none; } .notify-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; } .notify-canvas { max-height: 70vh; user-select: none; overflow: auto; border: 1px solid var(--border); border-radius: 6px; background: var(--bg); } .notify-edge { fill: none; stroke: var(--muted); stroke-width: 1.5; } .notify-box { cursor: grab; touch-action: none; } .notify-box-source { cursor: pointer; } .notify-box-carried { opacity: 0.45; } .notify-box.notify-box-target rect { stroke: var(--green); stroke-width: 3; } .notify-box.notify-box-refused rect { stroke: var(--red); stroke-width: 3; stroke-dasharray: 5 3; } .notify-box rect { fill: var(--bg-elev); stroke: var(--border); stroke-width: 1.5; } .notify-box-source rect { stroke: var(--blue); } .notify-box-match rect { stroke: var(--purple); } .notify-box-todo rect, .notify-box-request_reviewer rect { stroke: var(--green); } .notify-box:focus { outline: none; } .notify-box:focus rect, .notify-box-selected rect { stroke: var(--fg); stroke-width: 2.5; } .notify-box text { fill: var(--fg); font-size: 12px; pointer-events: none; } .notify-box .notify-box-kind { fill: var(--muted); font-size: 10px; } .notify-inspector { flex: 0 1 22em; min-width: 16em; } .notify-inspector fieldset { margin: 0 0 0.75em; } .notify-condition { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.5em; margin-bottom: 0.4em; } .notify-inspector-actions { display: flex; flex-wrap: wrap; gap: 0.5em; margin-bottom: 0.75em; } .notify-node-id, .notify-hint { color: var(--muted); font-size: 0.85em; } .notify-stale, .notify-notice { margin-bottom: 0.5em; padding: 0.4em 0.6em; border: 1px solid var(--red); border-radius: 6px; } .notify-name { flex: 0 1 24em; } /* The dry run's counts beside each node, and the router's "not available". */ .notify-node-hits { margin-left: auto; flex: none; color: var(--muted); font-variant-numeric: tabular-nums; } .notify-dry-run { margin: 0; color: var(--muted); font-size: 0.9em; } .notify-unavailable { margin: 0; color: var(--muted); } .notify-failed { color: var(--red); }