/* Fixed, project-scoped video analytics map. Existing theme tokens are authoritative. */
.main.analytics-overview-main{max-width:none;padding:26px 24px 20px}.analytics-overview{max-width:1600px;margin:0 auto}.ov-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.ov-heading h1{font-size:24px}.ov-heading p{color:var(--muted);font-size:12px;margin-top:6px}.ov-heading>.btn{font-size:11px}.ov-board-scroll{overflow:auto;border:1px solid var(--line);border-radius:12px;background:radial-gradient(circle,var(--line) .7px,transparent .8px) 0 0/16px 16px,var(--bg)}.ov-board-scroll:focus,.ov-board-scroll:focus-visible{outline:none}.ov-board{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(154px,1fr) minmax(190px,1.15fr) minmax(230px,1.45fr) minmax(170px,1.05fr);grid-template-rows:auto auto auto;gap:38px 24px;min-width:900px;padding:26px 24px 28px;align-items:center}.ov-connections{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:-1;pointer-events:none;fill:none}.ov-connections path{stroke:var(--muted);stroke-width:1.3;stroke-linejoin:round;stroke-linecap:round;opacity:.65}.ov-connections circle{fill:var(--panel);stroke:var(--muted);stroke-width:1.3}.ov-connections .optional path{stroke-dasharray:4 5;opacity:.4}.ov-connections .optional circle{stroke:var(--faint)}.ov-intro{grid-column:1/3;grid-row:1;align-self:center;padding:0 14px 0 0;display:flex;gap:20px}.ov-intro>div{display:flex;align-items:flex-start;gap:10px;flex:1}.ov-route-mark{display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:7px;flex-shrink:0;width:30px;height:30px;color:var(--muted);background:var(--panel)}.ov-intro strong{display:block;font-size:12px;font-weight:500;margin:3px 0 6px}.ov-intro p>span{display:block;font-size:11px;line-height:1.7;color:var(--muted);max-width:230px}.ov-node{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:15px 13px;min-width:0;position:relative}.ov-node-head{display:flex;gap:7px;align-items:center;min-width:0}.ov-node-head h2{font-size:12px;line-height:1.4;font-weight:550;letter-spacing:-.1px}.ov-node-icon{color:var(--muted);display:flex;flex-shrink:0}.ov-node-icon svg{width:15px;height:15px}.ov-node-copy{font-size:10px;line-height:1.65;color:var(--muted);margin-top:9px}.ov-text-action{display:flex;align-items:center;justify-content:space-between;gap:5px;color:var(--text);width:100%;padding:12px 0 0;margin-top:12px;border-top:1px solid var(--line);text-align:left;font-size:10px;font-weight:500}.ov-text-action:hover{color:var(--accent)}.ov-text-action>svg{width:12px;height:12px;flex-shrink:0}.ov-optional{font-size:8px;font-weight:400;color:var(--faint);margin-left:auto;white-space:nowrap}.ov-status{font-size:9px;color:var(--muted);display:inline-flex;gap:5px;align-items:center;line-height:1.6}.ov-status>i{height:4px;width:4px;border-radius:50%;background:currentColor;flex-shrink:0}.ov-status.success{color:var(--green)}.ov-status.error{color:var(--red)}.ov-status.warning{color:var(--yellow)}.ov-status.working{color:var(--accent)}.ov-ai{grid-column:3;grid-row:1;padding:13px}.ov-ai .ov-node-head{flex-wrap:wrap;row-gap:5px}.ov-ai .ov-optional{margin-left:22px}.ov-ai .ov-node-copy{font-size:10px;margin-top:7px}.ov-model-name{font-size:11px;margin-top:9px;overflow-wrap:anywhere}.ov-ai .ov-text-action{padding-top:8px;margin-top:9px}.ov-sources{grid-column:1;grid-row:2}.ov-platforms{display:grid;gap:6px;margin-top:14px}.ov-platform{display:flex;align-items:center;gap:8px;width:100%;padding:9px 7px;border:1px solid var(--line);border-radius:6px;text-align:left}.ov-platform:hover{border-color:var(--muted);background:var(--hover)}.ov-platform .platform-logo{width:21px;height:21px;font-size:12px;flex-shrink:0}.ov-platform>span:nth-child(2){flex:1;min-width:0}.ov-platform strong{display:block;font-size:11px;font-weight:500}.ov-platform small{display:block;color:var(--muted);font-size:8px;margin-top:3px}.ov-platform.is-on small{color:var(--green)}.ov-platform.is-off .platform-logo{opacity:.45}.ov-platform>b{font-size:11px;font-weight:500;color:var(--muted)}.ov-add-source{display:flex;align-items:center;justify-content:center;gap:5px;padding:10px 0 0;width:100%;font-size:10px;color:var(--muted)}.ov-add-source:hover{color:var(--accent)}.ov-add-source svg{width:12px;height:12px}.ov-finds{grid-column:2;grid-row:2}.ov-count{margin-left:auto;background:var(--hover);border-radius:4px;min-width:20px;text-align:center;padding:1px 4px;font-size:10px;color:var(--muted)}.ov-find-list{margin-top:10px}.ov-find-item+.ov-find-item{border-top:1px solid var(--line);padding-top:10px;margin-top:10px}.ov-find-title{display:flex;align-items:flex-start;gap:7px;text-align:left;width:100%;padding:0;min-width:0}.ov-find-title>span:last-child{font-size:10px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ov-find-title:hover{color:var(--accent)}.ov-find-title small{font-size:8px;color:var(--muted);display:block;margin-top:3px}.ov-video-frame{border:1px solid var(--line);border-radius:4px;background:var(--input);width:28px;height:34px;display:flex;align-items:center;justify-content:center;color:var(--muted);flex-shrink:0}.ov-video-frame svg{width:13px;height:13px}.ov-find-send{display:flex;align-items:center;gap:4px;color:var(--accent);font-size:9px;margin:7px 0 0 35px;padding:0;text-align:left}.ov-find-send svg{width:10px;height:10px}.ov-find-send:hover{text-decoration:underline}.ov-node-empty{text-align:center;padding:16px 0 10px;color:var(--muted)}.ov-node-empty>svg{width:22px;height:22px;opacity:.5;margin-bottom:9px}.ov-node-empty p{font-size:10px}.ov-node-empty small{font-size:9px;line-height:1.7;display:block;margin-top:5px}.ov-analyzer{grid-column:3;grid-row:2;box-shadow:0 12px 40px #0002;border-top:2px solid var(--accent);padding:15px 12px 13px}.ov-analyzer .ov-node-head{justify-content:center}.ov-analyzer .ov-node-icon{color:var(--accent)}.ov-analyzer .ov-node-head h2{font-size:13px}.ov-machine-status{display:flex;justify-content:center;margin-top:7px}.ov-factory-art{display:block;width:100%;height:auto;max-height:134px;margin:7px 0 0;stroke:var(--muted);stroke-width:1.3;fill:none;overflow:visible}.ov-machine{fill:var(--input);stroke:var(--muted)}.ov-machine-roof{stroke:var(--muted)}.ov-machine-seam,.ov-pipe{stroke:var(--line);stroke-width:2}.ov-window{stroke:var(--line);fill:var(--panel)}.ov-wave{stroke:var(--accent);stroke-width:1.5}.ov-cog{stroke:var(--accent);transform-box:view-box;transform-origin:75px 63px}.ov-small-cog{transform-origin:102px 80px;opacity:.55}.ov-light{fill:var(--accent);stroke:none;opacity:.5}.ov-light:nth-of-type(2){opacity:.25}.ov-belt{fill:var(--bg);stroke:var(--line)}.ov-belt-line{stroke:var(--line);stroke-dasharray:2 3}.ov-film{stroke:var(--muted);fill:var(--panel)}.ov-film path{fill:var(--muted);stroke:none}.ov-stages{display:flex;justify-content:center;gap:9px;font-size:7px;color:var(--muted);margin:3px 0 11px}.ov-stages span{display:flex;gap:3px;align-items:center}.ov-stages i{width:3px;height:3px;border-radius:50%;background:var(--faint)}.ov-analyzer>.ov-node-copy{text-align:center;font-size:10px;line-height:1.8}.ov-analyzer .ov-text-action{justify-content:center;gap:6px}.ov-results{grid-column:4;grid-row:2}.ov-result-metric{display:flex;justify-content:space-between;align-items:center;gap:8px;color:var(--muted);font-size:10px;margin-top:15px}.ov-result-metric strong{font-size:24px;font-weight:500;color:var(--text);line-height:1;font-variant-numeric:tabular-nums}.ov-result-metric strong.ov-positive{color:var(--green)}.ov-result-metric strong.ov-error{color:var(--red)}.ov-total{margin-top:18px;font-size:9px;color:var(--faint)}.ov-direct{grid-column:1;grid-row:1;display:flex;gap:14px;align-items:center;padding:18px 20px;border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}.ov-direct-icon{display:flex;align-items:center;justify-content:center;width:44px;height:52px;border:1px solid color-mix(in srgb,var(--accent) 25%,var(--line));border-radius:8px;color:var(--accent);background:var(--tint);flex-shrink:0}.ov-direct-icon svg{width:22px;height:22px}.ov-direct h2{font-size:16px;font-weight:550;letter-spacing:-.2px}.ov-direct p{font-size:11px;color:var(--muted);margin:5px 0 13px}.ov-direct .btn{font-size:10px;gap:5px;padding:6px 9px}.ov-direct .btn svg{width:12px;height:12px}.ov-file-unavailable{font-size:9px;color:var(--faint);margin-left:12px;white-space:nowrap}.ov-notifications{grid-column:3/5;grid-row:3;display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:15px}.ov-notifications>div:first-child{flex:1;min-width:0}.ov-notifications .ov-node-head{flex-wrap:wrap}.ov-notifications .ov-node-copy{margin-top:5px}.ov-notifications .ov-text-action{width:auto;margin:0;border:0;padding:0;gap:7px}.ov-notification-services{display:flex;align-items:center;gap:6px;flex-wrap:wrap;width:100%;border-top:1px solid var(--line);padding-top:12px}.ov-notification-services>span{font-size:8px;padding:3px 5px;border:1px solid var(--line);border-radius:4px;color:var(--muted)}.ov-notification-services small{font-size:8px;color:var(--faint);margin-left:auto}.ov-map-caption{display:flex;align-items:center;gap:22px;padding:13px 3px;color:var(--faint);font-size:9px;flex-wrap:wrap}.ov-map-caption>span{display:flex;align-items:center;gap:7px}.ov-map-caption>span:last-child{margin-left:auto}.ov-map-caption svg{width:12px;height:12px}.ov-line-key{width:22px;border-top:1px solid var(--muted)}.ov-line-key.optional{border-top-style:dashed}.overview-dialog{width:600px}.ov-dialog-body .modal-subtitle{line-height:1.8;font-size:12px;margin-bottom:22px}.ov-form-error{font-size:12px;color:var(--red);line-height:1.6}.ov-form-error:empty{display:none}.ov-availability{display:flex;align-items:flex-start;gap:9px;background:var(--input);border:1px solid var(--line);padding:13px;border-radius:7px;color:var(--muted);font-size:11px;line-height:1.7;margin:17px 0}.ov-availability>svg{width:15px;height:15px;flex-shrink:0;margin-top:2px}.ov-disabled-option{display:flex;gap:9px;align-items:center;color:var(--muted);font-size:12px;padding:12px 0}.ov-disabled-option>span{font-size:10px;color:var(--faint);margin-left:auto}.ov-dialog-hint{font-size:11px;color:var(--muted);line-height:1.8;margin:16px 0 0}.ov-event-options{display:flex;flex-direction:column;gap:12px;padding-bottom:20px;color:var(--muted);font-size:12px}.ov-event-options label{display:flex;gap:9px;align-items:center}.ov-integration-list{border:1px solid var(--line);border-radius:8px;padding:0 14px}.ov-integration-list>div{display:flex;align-items:center;justify-content:space-between;padding:13px 0}.ov-integration-list>div+div{border-top:1px solid var(--line)}.ov-integration-list>div>span:first-child{display:flex;align-items:center;gap:10px;font-size:12px}.ov-integration-list .tag{font-size:10px}.ov-dialog-stats{display:flex;gap:28px;margin:24px 0}.ov-dialog-stats>span{display:flex;flex-direction:column;color:var(--muted);font-size:11px;gap:6px}.ov-dialog-stats strong{font-size:25px;color:var(--text);font-weight:550}.ov-picked-video{display:flex;gap:12px;align-items:center;margin-bottom:20px}.ov-picked-video>svg{color:var(--accent);width:24px;height:24px}.ov-picked-video strong{display:block;font-weight:500;font-size:14px}.ov-picked-video small{display:block;color:var(--muted);margin-top:5px;font-size:11px}.ov-engine-stages>div{display:flex;align-items:center;gap:12px;padding:16px 0}.ov-engine-stages>div+div{border-top:1px solid var(--line)}.ov-engine-stages p{flex:1}.ov-engine-stages strong{display:block;font-size:12px;font-weight:500}.ov-engine-stages small{font-size:10px;display:block;color:var(--muted);margin-top:5px}.ov-engine-stages .tag{font-size:9px;white-space:nowrap}
@media(min-width:1600px){.ov-board{gap:42px 32px;padding:30px 28px}.ov-node{padding:18px 16px}.ov-node-head h2{font-size:13px}.ov-platform{padding:10px}.ov-text-action{font-size:11px}.ov-node-copy{font-size:11px}.ov-find-title>span:last-child{font-size:11px}.ov-find-send{font-size:10px}.ov-platform small{font-size:9px}.ov-factory-art{max-height:145px}.ov-stages{font-size:8px}}
@media(max-width:1100px){.main.analytics-overview-main{padding:22px 18px 16px}.ov-heading h1{font-size:22px}.ov-map-caption{gap:12px}.ov-map-caption>span:last-child{margin-left:0}}
@media(prefers-reduced-motion:no-preference){.ov-factory-art.is-working .ov-cog{animation:ov-gear 9s linear infinite}.ov-factory-art.is-working .ov-small-cog{animation-direction:reverse}.ov-factory-art.is-working .ov-light{animation:ov-indicator 1.7s ease-in-out infinite}.ov-platform,.ov-text-action{transition:background .12s,color .12s,border-color .12s}}
@keyframes ov-gear{to{transform:rotate(360deg)}}@keyframes ov-indicator{50%{opacity:1}}

.ov-heading-actions{display:flex;align-items:center;gap:9px;flex-shrink:0}.ov-heading-actions .btn{font-size:11px}.ov-heading-actions .btn svg{width:13px;height:13px}

.analytics-workspace{max-width:1600px;margin:0 auto}.analytics-workspace>.va-page-header>.ov-heading{margin-bottom:0;min-height:62px}.analytics-workspace>.va-page-header>.ov-heading>div:first-child{min-width:0}.analytics-workspace>.va-page-header>.ov-heading p{line-height:1.5;overflow-wrap:break-word}.analytics-overview-tabs.builder-tabs{margin-top:20px;margin-bottom:24px}.analytics-workspace #analytics-overview-panel{min-width:0}.analytics-workspace #analytics-overview-panel>.toolbar{margin-top:0}


.ov-direct{flex-direction:column;align-items:flex-start;gap:10px;padding:15px 13px}.ov-direct-icon{width:32px;height:36px}.ov-direct-icon svg{width:18px;height:18px}.ov-direct h2{font-size:14px}.ov-direct p{font-size:10px;line-height:1.7;margin:5px 0 12px}.ov-direct .ov-file-unavailable{display:block;margin:9px 0 0;font-size:8px}

/* Independent platform routes; switches configure the map without launching jobs. */
.ov-connections{z-index:1}.ov-connections g.is-active>path{stroke:var(--accent);stroke-width:2;opacity:1}.ov-platform{gap:7px;cursor:default}.ov-platform-open{display:flex;align-items:center;gap:6px;flex:1;min-width:0;padding:0;text-align:left;line-height:1.4}.ov-platform-open>.platform-logo{width:18px;height:18px;font-size:11px}.ov-platform-label{min-width:0;flex:1}.ov-platform .ov-platform-label>strong{display:flex;align-items:center;gap:5px;font-size:10px}.ov-platform-label>strong>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ov-platform-count{font-size:8px;color:var(--faint);font-weight:500}.ov-platform-open:hover .ov-platform-label>strong{color:var(--accent)}.ov-platform-label>small{font-size:8px;line-height:1.5;margin-top:3px}.ov-platform.is-on .ov-platform-label>small{color:var(--muted)}.ov-platform.is-on{border-color:color-mix(in srgb,var(--accent) 32%,var(--line))}.ov-platform-switch{position:relative;flex-shrink:0;width:27px;height:15px;padding:0;border-radius:9px;background:var(--line);border:1px solid color-mix(in srgb,var(--muted) 24%,transparent);transition:background .15s,border-color .15s}.ov-platform-switch>span{position:absolute;top:2px;left:2px;width:9px;height:9px;background:var(--muted);border-radius:50%;transition:transform .15s,background .15s}.ov-platform-switch[aria-checked="true"]{background:var(--accent);border-color:var(--accent)}.ov-platform-switch[aria-checked="true"]>span{transform:translateX(12px);background:#fff8ee}.ov-platform-switch:hover{border-color:var(--muted)}.ov-platform-switch[aria-checked="true"]:hover{border-color:var(--accent)}.ov-platform-switch:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* Use the canvas assistant's shared icon, status and action styling in the fixed map. */
.ov-ai.ov-ai-canvas{padding:24px 0 0;background:transparent;border:0;justify-self:center;width:220px;display:flex;flex-direction:column;align-items:center;min-width:0}.ov-ai-canvas-node{position:relative;width:132px;height:112px;flex-shrink:0;border:1px solid var(--line);border-radius:19px;background:#141416;box-shadow:0 12px 40px #0002}.light .ov-ai-canvas-node{background:#f0f0f3}.ov-ai-node-open{position:absolute;inset:0;width:100%;border-radius:inherit;cursor:pointer}.ov-ai-canvas-node .trigger-node-icon{transition:opacity .14s ease}.ov-ai-canvas-node .ai-status-unconfigured{animation:ai-unconfigured-blink 2.2s ease-in-out infinite!important;color:#d76b73}.light .ov-ai-canvas-node .ai-status-unconfigured{color:#b84751}.ov-ai-canvas-caption{text-align:center;margin-top:11px;width:220px;max-width:100%}.ov-ai-canvas-caption strong{font-size:13px;font-weight:500;line-height:1.5;display:block}.ov-ai-canvas-caption small{display:block;font-size:10px;line-height:1.6;color:var(--muted);margin-top:5px;overflow-wrap:anywhere}.ov-ai-hover-action{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:var(--accent);opacity:0;pointer-events:none;transition:opacity .14s ease;padding-top:1px}.ov-ai-hover-action>svg{width:23px;height:23px}.ov-ai-hover-action>span{font-size:10px;font-weight:500}.ov-ai-canvas-node:hover,.ov-ai-canvas-node:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--tint),0 12px 40px #0002}.ov-ai-canvas-node.is-unconfigured:hover .trigger-node-icon,.ov-ai-canvas-node.is-unconfigured:focus-within .trigger-node-icon{opacity:0}.ov-ai-canvas-node.is-unconfigured:hover .ov-ai-hover-action,.ov-ai-canvas-node.is-unconfigured:focus-within .ov-ai-hover-action{opacity:1}.ov-ai-node-open:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.ov-ai-gear{position:relative;z-index:2}

/* Expanded assistant layout, matching the constructor's full node. */
.ov-ai.ov-ai-canvas{width:300px;padding-top:24px}.ov-ai-canvas-node.is-expanded{width:300px;height:auto;min-height:128px;border-radius:18px}.ov-ai-canvas-node.is-expanded .ov-ai-node-open{position:relative;inset:auto;height:auto;text-align:left;padding:31px 18px 14px;gap:12px;justify-content:flex-start}.ov-ai-canvas-node.is-expanded .trigger-node-text{min-width:0;flex:1}.ov-ai-canvas-node.is-expanded .trigger-node-text strong{font-size:15px;line-height:1.5;font-weight:550}.ov-ai-canvas-node.is-expanded .trigger-description{display:block;white-space:normal;font-size:10px;line-height:1.6;margin-top:4px;color:var(--muted)}.ov-ai-canvas-node.is-expanded .trigger-node-info{padding:0 18px 14px;gap:10px}.ov-ai-model-caption{font-size:9px;line-height:1.6;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ov-ai-top-actions{align-items:center;gap:7px}.ov-ai-canvas-node.is-disabled .trigger-node-main>.trigger-node-icon{opacity:.55}.ov-ai-canvas-node.is-disabled .trigger-node-text{color:var(--muted)}.ov-ai-enabled-status{font-size:9px;color:var(--muted)}.ov-ai-enabled-status.is-on{color:var(--accent)}.ov-ai-canvas-node.is-expanded .ai-status-unconfigured{font-size:9px}.ov-ai-canvas-node.is-expanded .trigger-node-status .dot{width:4px;height:4px}.ov-connections g.optional.is-active>path{stroke-dasharray:none;opacity:1}

.ov-ai-canvas-node,.ov-ai-canvas-node:hover,.ov-ai-canvas-node:focus-within{box-shadow:none}

.ov-ai-canvas-node:hover{border-color:var(--line)}.ov-ai-canvas-node:focus-within{border-color:var(--line)}.ov-ai-canvas-node:hover .ov-ai-switch{border-color:var(--accent);box-shadow:0 0 0 3px var(--tint)}.ov-ai-canvas-node:hover .ov-ai-switch[aria-checked="false"]{background:color-mix(in srgb,var(--accent) 22%,var(--line))}.ov-ai-canvas-node:hover .ov-ai-switch[aria-checked="false"]>span{background:var(--accent)}

/* Fixed map viewport; controls stay outside the scaled world. */
.ov-board-scroll{position:relative;overflow:hidden;height:calc(100vh - 270px);min-height:360px;touch-action:none;cursor:grab}
.ov-board-scroll.is-panning{cursor:grabbing;user-select:none}
.ov-world{position:absolute;transform-origin:0 0}
.ov-board{box-sizing:border-box}
.ov-zoom-controls{z-index:5;cursor:default}
.ov-zoom-controls button:disabled{opacity:.3;cursor:default}
.ov-zoom-controls button:disabled:hover{background:transparent;color:var(--muted)}

.ov-add-source{display:flex;align-items:center;justify-content:flex-start;gap:10px;width:100%;margin-top:12px;padding:12px 10px;border:1px dashed var(--line);border-radius:9px;background:transparent;text-align:left;color:var(--text);transition:border-color .16s ease,background .16s ease}
.ov-add-source-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:var(--hover);color:var(--text);transition:color .16s ease,border-color .16s ease,background .16s ease}
.ov-add-source-icon svg{width:16px;height:16px}
.ov-add-source-label{min-width:0;display:flex;flex-direction:column;gap:4px}
.ov-add-source-label strong{font-size:10px;font-weight:550;line-height:1.4}
.ov-add-source-label small{font-size:9px;line-height:1.45;color:var(--muted)}
.ov-add-source:hover,.ov-add-source:focus-visible{border-color:var(--accent);background:var(--tint);color:var(--text)}
.ov-add-source:hover .ov-add-source-icon,.ov-add-source:focus-visible .ov-add-source-icon{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,var(--line));background:var(--tint)}

.ov-sources-switch{margin-left:auto;flex-shrink:0}.ov-sources .ov-node-head{gap:7px}

.ov-toggle{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;white-space:nowrap}

.ov-sources-switch-wrap{margin-left:auto}
.ov-platform .ov-toggle{margin-left:auto;margin-right:0}
.ov-platform .ov-platform-open{min-width:0}
.ov-platform .ov-platform-label strong{gap:4px}

.ov-board{min-width:1000px;grid-template-columns:minmax(220px,1fr) minmax(190px,1.15fr) minmax(230px,1.45fr) minmax(170px,1.05fr)}

/* Inactive controls are the hover target; platform cards keep a quiet border. */
.ov-platform:hover{border-color:var(--line);background:transparent}
.ov-platform:hover .ov-platform-switch[aria-checked="false"],.ov-sources>.ov-node-head:hover .ov-platform-switch[aria-checked="false"],.analytics-overview .ov-platform-switch[aria-checked="false"]:hover{border-color:var(--accent);box-shadow:0 0 0 3px var(--tint);background:color-mix(in srgb,var(--accent) 22%,var(--line))}
.ov-platform:hover .ov-platform-switch[aria-checked="false"]>span,.ov-sources>.ov-node-head:hover .ov-platform-switch[aria-checked="false"]>span,.analytics-overview .ov-platform-switch[aria-checked="false"]:hover>span{background:var(--accent)}

.ov-direct-action{flex-direction:row;align-items:center;justify-content:flex-start;gap:10px;margin-top:0;padding:14px 12px;border:1px dashed var(--line);background:var(--panel);border-radius:9px;text-align:left;cursor:pointer}
.ov-direct-action .ov-add-source-label strong{font-size:11px}
.ov-direct-action .ov-add-source-label small{font-size:9px}
.ov-direct-action:hover,.ov-direct-action:focus-visible{border-color:var(--accent);background:var(--tint)}

.ov-platform>span.ov-toggle{flex:0 0 auto;min-width:auto;margin-left:auto}

.ov-direct.ov-direct-card{display:block;padding:13px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}

.analytics-overview-tabs.builder-tabs>.ov-settings-tab{margin-left:auto;padding-left:14px;padding-right:14px;flex-shrink:0}.ov-settings-tab svg{width:17px;height:17px}

/* Independent source cards with the same family caption as the AI node. */
.ov-sources-group{position:relative;min-width:0;padding:0;background:transparent;border:0}
.ov-sources-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;min-height:16px}
.ov-sources-heading .trigger-node-family{position:static;font-size:8px;letter-spacing:.6px;text-transform:uppercase;line-height:16px}
.ov-sources-group .ov-platforms{margin-top:0;gap:12px}
.ov-sources-group .ov-platform{padding:16px 14px;min-height:68px;border-radius:12px;background:var(--panel);border:1px solid var(--line);gap:10px}
.ov-sources-group .ov-platform:hover{background:var(--panel);border-color:var(--line)}
.ov-sources-group .ov-platform-open{gap:10px}
.ov-sources-group .ov-platform-open>.platform-logo{width:32px;height:32px;border-radius:8px;font-size:20px}
.ov-sources-group .ov-platform-label>strong{font-size:12px}
.ov-sources-group .ov-platform-label>small{font-size:9px}
.ov-sources-group>.ov-add-source{margin-top:14px;padding:14px 12px;background:var(--panel)}
.ov-sources-group>.ov-add-source:hover{background:var(--tint)}
.ov-sources-heading:hover .ov-platform-switch[aria-checked="false"]{border-color:var(--accent);box-shadow:0 0 0 3px var(--tint);background:color-mix(in srgb,var(--accent) 22%,var(--line))}
.ov-sources-heading:hover .ov-platform-switch[aria-checked="false"]>span{background:var(--accent)}

.ov-sources-heading{padding-right:15px}.ov-sources-master{display:flex;align-items:center;gap:7px;margin-left:auto;flex-shrink:0}.ov-sources-master>span:first-child{font-size:9px;color:var(--muted);line-height:15px}

.ov-sources-heading .trigger-node-family,.ov-ai-canvas .trigger-node-family{font-size:11.2px;letter-spacing:.84px;line-height:14px}.ov-sources-heading .trigger-node-family:before,.ov-ai-canvas .trigger-node-family:before{width:5.6px;height:5.6px;flex-shrink:0}.ov-sources-heading{min-height:20px}

.ov-direct.ov-direct-card{padding:0;border:0;background:transparent;width:100%;min-width:0}.ov-direct-card>.ov-direct-action{width:100%;box-sizing:border-box}

.ov-direct-card>.ov-direct-action,.ov-sources-group>.ov-add-source{background:transparent}
.ov-direct-card>.ov-direct-action:hover,.ov-direct-card>.ov-direct-action:focus-visible,.ov-sources-group>.ov-add-source:hover,.ov-sources-group>.ov-add-source:focus-visible{background:var(--tint);border-color:var(--accent)}

/* A 72px routing lane groups source branches before the findings card. */
.ov-board{min-width:1222px;grid-template-columns:minmax(220px,1fr) 93.6px minmax(190px,1.15fr) 72px minmax(230px,1.45fr) 72px minmax(170px,1.05fr);column-gap:0}
.ov-board>.ov-sources,.ov-board>.ov-direct{grid-column:1}
.ov-board>.ov-finds{grid-column:3}
.ov-board>.ov-ai,.ov-board>.ov-analyzer{grid-column:5}
.ov-board>.ov-results{grid-column:7}
.ov-board>.ov-notifications{grid-column:5/8}

/* Dashed idle routes and flat idle cards share the AI node's state language. */
.ov-connections g:not(.is-active)>path{stroke-dasharray:4 5}
.ov-connections g.is-active>path{stroke-dasharray:none}
.ov-sources-group .ov-platform,.ov-finds,.ov-results,.ov-notifications{box-shadow:none;transition:box-shadow .2s ease}
.ov-sources-group .ov-platform.is-route-active,.ov-finds.is-route-active,.ov-results.is-route-active,.ov-notifications.is-route-active{box-shadow:0 12px 40px #0002}

/* The active source's rounded right contour meets its outgoing route. */
.ov-sources-group .ov-platform{position:relative}
.ov-sources-group .ov-platform::after{content:'';position:absolute;right:-1px;top:-1px;bottom:-1px;width:13px;border:2px solid var(--accent);border-left:0;border-radius:0 12px 12px 0;opacity:0;pointer-events:none;transition:opacity .18s ease}
.ov-sources-group .ov-platform.is-route-active::after{opacity:1}

.ov-analyzer{border-top:1px solid var(--line)}

.ov-direct.ov-direct-card{align-self:end;top:18px}
.ov-direct-card>.trigger-node-family{font-size:11.2px;letter-spacing:.84px;line-height:14px;text-transform:uppercase;top:-28px}
.ov-direct-card>.trigger-node-family:before{width:5.6px;height:5.6px;flex-shrink:0}
.ov-sources-group .ov-platform-open>.platform-logo{background:transparent;border:0;opacity:1}
.ov-sources-group .platform-logo svg{display:block;width:32px;height:32px}

.ov-sources-group .platform-logo svg{stroke:none}
.ov-sources-group .platform-logo.tiktok svg path,.ov-sources-group .platform-logo.tiktok svg rect,.ov-sources-group .platform-logo.youtube svg path,.ov-sources-group .platform-logo.youtube svg rect{stroke:none}

.ov-analyzer-spacer{height:36px;margin-top:9px}
.ov-board>.ov-notifications{grid-column:5;width:510px;max-width:none;justify-self:center}

.ov-board>.ov-notifications-canvas{width:300px;max-width:none;justify-self:center;padding:24px 0 0;display:block;border:0;background:transparent;box-shadow:none}
.ov-notifications-canvas .trigger-node-family{font-size:11.2px;letter-spacing:.84px;line-height:14px;text-transform:uppercase}
.ov-notifications-canvas .trigger-node-family:before{width:5.6px;height:5.6px;flex-shrink:0}
.ov-notifications-canvas .ai-status-unconfigured{color:#d76b73}
.light .ov-notifications-canvas .ai-status-unconfigured{color:#b84751}

.ov-analyzer-heading{display:flex;align-items:center;gap:12px;text-align:left}
.ov-analyzer-heading>.trigger-node-icon{position:static;display:flex;align-items:center;justify-content:center;flex-shrink:0;width:46px;height:46px;border-radius:50%;border:1px solid color-mix(in srgb,var(--accent) 26%,var(--line));background:var(--tint);color:var(--accent)}
.ov-analyzer-heading>.trigger-node-icon svg{width:23px;height:23px}
.ov-analyzer-heading h2{font-size:15px;font-weight:550;line-height:1.5}
.ov-analyzer-heading .ov-machine-status{justify-content:flex-start;margin-top:4px}
.ov-analyzer .ov-analyzer-spacer{height:11px}
.ov-notification-settings{position:relative;margin-top:24px;width:300px;padding:14px;background:#18191d;border:1px solid #34353d;border-radius:10px;color:#e3e3e9;box-shadow:none}
.ov-notification-settings:before{content:'';position:absolute;left:149px;top:-25px;height:24px;border-left:2px solid var(--accent)}
.ov-settings-open:after{content:'';position:absolute;left:-1px;right:-1px;bottom:-1px;height:12px;border:2px solid var(--accent);border-top:0;border-radius:0 0 18px 18px;pointer-events:none}
.ov-notification-settings-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;font-size:12px}
.ov-channel-option{display:flex;align-items:center;gap:9px;padding:12px 0;border-top:1px solid #303138}
.ov-channel-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid #34353d;border-radius:7px;color:var(--accent)}
.ov-channel-icon svg{width:15px;height:15px}
.ov-channel-option strong{display:block;font-size:11px;font-weight:500}
.ov-channel-option small{display:block;font-size:9px;color:#a0a0aa;margin-top:4px;line-height:1.5}
.ov-channel-option>.ov-channel-state{margin-left:auto;font-size:8px;white-space:nowrap}
.ov-notifications-canvas.is-route-active>.ov-ai-canvas-node{box-shadow:0 12px 40px #0002}

.ov-analyzer{min-height:271px}

.ov-embedded-settings .builder-heading{display:none}.ov-embedded-settings .analytics-settings-page{max-width:none;width:100%;margin:0}.ov-embedded-settings .builder-tabs{margin-top:0}.sidebar .analytics-nav{width:100%}

/* Legible source names and matching monochrome brand vectors. */
.ov-sources-group .ov-platform-label>strong{font-size:15px;line-height:1.4;align-items:center}
.ov-sources-group .ov-platform-open{align-items:center}
.ov-sources-group .ov-platform-count{font-size:10px;color:var(--muted);font-weight:500;margin-left:2px}
.ov-sources-group .platform-logo{color:var(--text)}
.ov-sources-group .platform-logo svg{width:27px;height:27px;fill:currentColor;stroke:none}
.ov-sources-group .platform-logo svg path{stroke:none}
.ov-social-gears{display:block;width:100%;height:134px;margin:7px 0 0;overflow:visible}
.ov-social-gear-rotor{transform-origin:0 0;animation:ov-gears-turn 16s linear infinite !important}
.ov-social-gear-rotor.is-reversed{animation-direction:reverse !important}
.ov-social-gear-rotor>path{fill:var(--input);stroke:var(--accent);stroke-width:1.6;stroke-linejoin:round}
.ov-social-gear-rotor>circle{fill:var(--panel);stroke:color-mix(in srgb,var(--accent) 45%,var(--line));stroke-width:1.4}
.ov-gear-brand{color:var(--text);fill:currentColor;stroke:none;overflow:visible}
.ov-gear-brand>path{stroke:none}
@keyframes ov-gears-turn{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.ov-social-gear-rotor{animation-duration:60s !important}}

.ov-node>.ov-card-family{top:-28px;font-size:11.2px;letter-spacing:.84px;line-height:14px;text-transform:uppercase}
.ov-node>.ov-card-family:before{width:5.6px;height:5.6px;flex-shrink:0}
.ov-card-family .ov-count{font-size:9px;letter-spacing:0;line-height:14px;pointer-events:auto}
.ov-ai-canvas-node .trigger-node-info>.trigger-node-status:last-child{margin-left:auto}

.ov-sources-group .ov-platform:not(.is-route-active){background:#141416}
.light .ov-sources-group .ov-platform:not(.is-route-active){background:#f0f0f3}
.ov-sources-group .ov-platform .ov-platform-open{transition:opacity .18s ease}
.ov-sources-group .ov-platform:not(.is-route-active) .ov-platform-open{opacity:.42}
.ov-results-summary{padding:18px 14px 13px;border-radius:12px}
.ov-library-total{display:flex;align-items:center;gap:10px}
.ov-library-total>strong{font-size:38px;line-height:1;font-weight:550;letter-spacing:-1.5px;font-variant-numeric:tabular-nums}
.ov-library-total>span{font-size:10px;line-height:1.6;color:var(--muted)}
.ov-library-distribution{display:flex;gap:3px;height:5px;overflow:hidden;border-radius:4px;background:var(--line);margin:20px 0 17px}
.ov-library-distribution>span{min-width:3px;border-radius:2px}
.ov-library-distribution .is-done{background:var(--green)}
.ov-library-distribution .is-working{background:var(--accent)}
.ov-library-distribution .is-failed{background:#d76b73}
.ov-library-distribution .is-pending{background:var(--faint);opacity:.5}
.ov-library-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
.ov-library-stats>div{position:relative;display:flex;flex-direction:column;gap:5px;padding:10px 5px 9px;border:1px solid var(--line);border-radius:6px;background:var(--input)}
.ov-library-stats strong{font-size:21px;font-weight:500;font-variant-numeric:tabular-nums;line-height:1.1}
.ov-library-stats span{font-size:8px;color:var(--muted);white-space:nowrap}
.ov-library-stats i{position:absolute;right:5px;top:7px;width:3px;height:3px;border-radius:50%;background:currentColor}
.ov-library-stats .is-working{color:var(--accent)}
.ov-library-stats .is-done{color:var(--green)}
.ov-library-stats .is-failed{color:#d76b73}
.ov-library-pending{display:flex;justify-content:space-between;margin-top:13px;font-size:9px;color:var(--muted)}
.ov-library-pending strong{font-weight:500;color:var(--text)}
.ov-results-summary>.ov-text-action{margin-top:15px;padding-top:12px}

.ov-notifications-canvas{position:relative}

.ov-ai.ov-ai-canvas{position:relative}

.ov-finds-distribution .is-tiktok{background:var(--accent)}
.ov-finds-distribution .is-youtube{background:#d76b73}
.ov-finds-distribution .is-instagram{background:#a48bc2}
.ov-finds-stats>div{align-items:center;padding-top:9px;gap:6px}
.ov-finds-stats .ov-stat-brand{display:flex;align-items:center;justify-content:center;color:var(--muted)}
.ov-stat-brand svg{width:16px;height:16px;stroke:none;fill:currentColor}
.ov-finds-stats strong{font-size:21px;color:var(--text)}
.ov-finds-stats>div>span:last-child{font-size:8px}

.ov-results-summary:not(.ov-finds-summary) .ov-library-stats>div{align-items:center;justify-content:center;gap:9px;padding:12px 4px;min-height:76px}
.ov-library-stats>div{transition:border-color .16s,background .16s;cursor:default}
.ov-library-stats>div:hover,.ov-library-stats>div:focus-visible{border-color:var(--muted);background:var(--hover);outline:none}
.ov-library-distribution{overflow:visible}
.ov-library-distribution>span{transition:opacity .16s,filter .16s,transform .16s,box-shadow .16s;transform-origin:center}
.ov-results-summary:has(.ov-library-stats>[data-segment="working"]:is(:hover,:focus-visible)) .ov-library-distribution>[data-segment]{opacity:.2}
.ov-results-summary:has(.ov-library-stats>[data-segment="working"]:is(:hover,:focus-visible)) .ov-library-distribution>[data-segment="working"]{opacity:1;filter:brightness(1.3);transform:scaleY(1.8);box-shadow:0 0 8px color-mix(in srgb,currentColor 18%,transparent)}
.ov-results-summary:has(.ov-library-stats>[data-segment="done"]:is(:hover,:focus-visible)) .ov-library-distribution>[data-segment]{opacity:.2}
.ov-results-summary:has(.ov-library-stats>[data-segment="done"]:is(:hover,:focus-visible)) .ov-library-distribution>[data-segment="done"]{opacity:1;filter:brightness(1.3);transform:scaleY(1.8);box-shadow:0 0 8px color-mix(in srgb,currentColor 18%,transparent)}
.ov-results-summary:has(.ov-library-stats>[data-segment="failed"]:is(:hover,:focus-visible)) .ov-library-distribution>[data-segment]{opacity:.2}
.ov-results-summary:has(.ov-library-stats>[data-segment="failed"]:is(:hover,:focus-visible)) .ov-library-distribution>[data-segment="failed"]{opacity:1;filter:brightness(1.3);transform:scaleY(1.8);box-shadow:0 0 8px color-mix(in srgb,currentColor 18%,transparent)}
.ov-results-summary:has(.ov-library-stats>[data-segment="tiktok"]:is(:hover,:focus-visible)) .ov-library-distribution>[data-segment]{opacity:.2}
.ov-results-summary:has(.ov-library-stats>[data-segment="tiktok"]:is(:hover,:focus-visible)) .ov-library-distribution>[data-segment="tiktok"]{opacity:1;filter:brightness(1.3);transform:scaleY(1.8);box-shadow:0 0 8px color-mix(in srgb,currentColor 18%,transparent)}
.ov-results-summary:has(.ov-library-stats>[data-segment="youtube"]:is(:hover,:focus-visible)) .ov-library-distribution>[data-segment]{opacity:.2}
.ov-results-summary:has(.ov-library-stats>[data-segment="youtube"]:is(:hover,:focus-visible)) .ov-library-distribution>[data-segment="youtube"]{opacity:1;filter:brightness(1.3);transform:scaleY(1.8);box-shadow:0 0 8px color-mix(in srgb,currentColor 18%,transparent)}
.ov-results-summary:has(.ov-library-stats>[data-segment="instagram"]:is(:hover,:focus-visible)) .ov-library-distribution>[data-segment]{opacity:.2}
.ov-results-summary:has(.ov-library-stats>[data-segment="instagram"]:is(:hover,:focus-visible)) .ov-library-distribution>[data-segment="instagram"]{opacity:1;filter:brightness(1.3);transform:scaleY(1.8);box-shadow:0 0 8px color-mix(in srgb,currentColor 18%,transparent)}

.ov-analyzer-heading{align-items:center}.ov-analyzer-heading>div{min-width:0}.ov-analyzer-heading h2{font-size:17px;line-height:1.3;letter-spacing:-.25px}

/* Optical analyzer: the geometry stays still; a source action triggers one light pass. */
.ov-analyzer:has(.ov-optical){background:linear-gradient(145deg,color-mix(in srgb,var(--text) 3%,var(--panel)),var(--panel) 58%);overflow:hidden}
.ov-optical{height:156px;margin:7px 0 0;isolation:isolate;pointer-events:none;color:var(--muted)}
.ov-optical-art{display:block;width:100%;height:100%;overflow:visible;fill:none;stroke:none}
.ov-optical .ov-glass-top{stop-color:#37383d}.ov-optical .ov-glass-bottom{stop-color:#1a1b1f}
.ov-optical-ground{fill:#000;opacity:.17}
.ov-optical-track,.ov-optical-foundation{fill:none;stroke:var(--line);stroke-width:1}
.ov-optical-layer>rect{fill:url(#ov-optical-glass);stroke:var(--muted);stroke-width:.7}
.ov-optical-layer>path{stroke:var(--muted);stroke-width:.7;fill:none}
.ov-optical-back{opacity:.3}.ov-optical-mid{opacity:.55}
.ov-optical-screen{fill:url(#ov-optical-glass);stroke:var(--muted);stroke-width:.8}
.ov-optical-corners{stroke:var(--muted);stroke-width:1.25;fill:none;opacity:.65}
.ov-optical-play{fill:color-mix(in srgb,var(--muted) 10%,transparent);stroke:var(--muted);stroke-width:1;stroke-linejoin:round}
.ov-optical-timeline{stroke:var(--muted);stroke-width:1.5;opacity:.35;stroke-linecap:round}
.ov-optical-scan{opacity:0}.ov-optical-scan>path{stroke:#f5c67c;stroke-width:1.2}
.ov-optical-source{color:var(--muted);opacity:.25}
.ov-optical-source>circle{fill:var(--input);stroke:var(--line);stroke-width:1}
.ov-optical-source>svg{stroke:none;fill:currentColor}
.ov-optical-source.is-lit{opacity:1;color:var(--text)}
.ov-optical-source.is-lit>circle{stroke:color-mix(in srgb,var(--accent) 55%,var(--line));fill:var(--tint)}
.ov-optical.is-connected .ov-optical-corners{stroke:url(#ov-optical-edge);opacity:1}
.ov-optical.is-connected .ov-optical-play{stroke:var(--accent);fill:color-mix(in srgb,var(--accent) 8%,transparent)}
.ov-optical.is-connected .ov-optical-mid>rect{stroke:color-mix(in srgb,var(--accent) 55%,var(--muted))}
.ov-analyzer:has(.ov-optical) .ov-analyzer-spacer{height:0;margin-top:0}
.ov-analyzer:has(.ov-optical) .ov-stages{margin-top:6px;margin-bottom:0;font-size:8px;gap:10px}
.ov-connections circle.ov-route-pulse{fill:#ffdc9d;stroke:none;opacity:0}
.light .ov-optical .ov-glass-top{stop-color:#fff}.light .ov-optical .ov-glass-bottom{stop-color:#e8e9ed}
.light .ov-optical-ground{opacity:.05}
@media(prefers-reduced-motion:no-preference){
 .ov-optical.is-connecting .ov-optical-scan{animation:ov-optical-sweep 3.2s var(--ov-motion-offset) both}
 .ov-optical.is-connecting .ov-optical-back{animation:ov-optical-rear 3.2s var(--ov-motion-offset) both}
 .ov-optical.is-connecting .ov-optical-mid{animation:ov-optical-middle 3.2s var(--ov-motion-offset) both}
 .ov-optical.is-connecting .ov-optical-source.is-arriving>circle{animation:ov-optical-arrive 3.2s var(--ov-motion-offset) both;transform-box:fill-box;transform-origin:center}
}
@keyframes ov-optical-sweep{0%,34%{opacity:0;transform:translateX(0)}38%{opacity:1}70%{opacity:1;transform:translateX(76px)}78%,100%{opacity:0;transform:translateX(76px)}}
@keyframes ov-optical-rear{0%,34%,100%{transform:translate(0,0);opacity:.3}50%,66%{transform:translate(5px,-4px);opacity:.65}}
@keyframes ov-optical-middle{0%,34%,100%{transform:translate(0,0);opacity:.55}50%,66%{transform:translate(2px,-2px);opacity:.85}}
@keyframes ov-optical-arrive{0%,29%{opacity:.4;transform:scale(.84)}41%{opacity:1;transform:scale(1.13)}56%,100%{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.ov-optical *,.ov-route-pulse{animation:none!important}.ov-route-pulse{display:none}}

/* Video atomizer: arrive, hold, split into 3 × 3, depart. One 5.6 s cycle. */
.ov-analyzer:has(.ov-atomizer){position:relative;background:var(--panel);overflow:hidden}
.ov-analyzer:has(.ov-atomizer.is-connected){background:color-mix(in srgb,var(--accent) 4%,var(--panel));border-color:color-mix(in srgb,var(--accent) 38%,var(--line))}
.ov-analyzer:has(.ov-atomizer.is-connected)::after{content:'';position:absolute;bottom:0;left:calc(50% - 24px);width:48px;height:2px;background:var(--accent);border-radius:2px}
.ov-atomizer{height:156px;margin-top:7px;pointer-events:none;color:var(--muted)}
.ov-atomizer.is-connected{color:var(--accent)}
.ov-atomizer-art{display:block;width:100%;height:100%;overflow:hidden;fill:none;stroke:none}
.ov-atom-track{stroke:var(--line);stroke-width:1}
.ov-atom-brackets{stroke:var(--line);stroke-width:.85;fill:none}
.is-connected .ov-atom-track{stroke:color-mix(in srgb,var(--accent) 35%,var(--line))}
.ov-atom-video-frame{fill:var(--input);stroke:currentColor;stroke-width:1.3}
.is-connected .ov-atom-video-frame{fill:color-mix(in srgb,var(--accent) 6%,var(--panel))}
.ov-atom-play{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.ov-atom-carrier{display:none}
.ov-atom-tile{fill:color-mix(in srgb,var(--accent) 12%,var(--panel));stroke:currentColor;stroke-width:.9;opacity:0}
.ov-atom-source{color:var(--muted);opacity:.3}
.ov-atom-source>circle{fill:var(--input);stroke:var(--line);stroke-width:.9}
.ov-atom-source>svg{fill:currentColor;stroke:none}
.ov-atom-source.is-lit{color:var(--text);opacity:1}
.ov-atom-source.is-lit>circle{fill:var(--tint);stroke:color-mix(in srgb,var(--accent) 55%,var(--line))}
.ov-analyzer:has(.ov-atomizer) .ov-analyzer-spacer{height:0;margin-top:0}
.ov-analyzer:has(.ov-atomizer) .ov-stages{margin-top:6px;margin-bottom:0;font-size:8px;gap:10px}
/* The analyzer always visualizes active sources, including under reduced motion.
   Keep the override scoped to this illustration; pause it while the tab is hidden. */
.ov-atomizer.is-connected .ov-atom-static{display:none}
.ov-atomizer.is-connected .ov-atom-carrier{display:block;animation:ov-atom-arrive 5.6s var(--atom-offset) infinite both!important}
.ov-atomizer.is-connected .ov-atom-piece{animation:ov-atom-depart 5.6s var(--atom-offset) infinite both!important}
.ov-atomizer.is-connected .ov-atom-original{animation:ov-atom-original 5.6s var(--atom-offset) infinite both!important}
.ov-atomizer.is-connected .ov-atom-tile{animation:ov-atom-grid 5.6s var(--atom-offset) infinite both!important}
@keyframes ov-atom-arrive{0%{transform:translateX(-175px);opacity:0;animation-timing-function:cubic-bezier(.16,1,.3,1)}5%{opacity:1}24%,88%{transform:translateX(0);opacity:1}94%,100%{transform:translateX(0);opacity:0}}
@keyframes ov-atom-depart{0%,39%{transform:translate(0,0);opacity:1;animation-timing-function:cubic-bezier(.2,.8,.2,1)}48%,57%{transform:translate(var(--split-x),var(--split-y));opacity:1;animation-timing-function:cubic-bezier(.65,0,.85,.45)}86%,100%{transform:translate(var(--exit-x),var(--exit-y));opacity:0}}
@keyframes ov-atom-original{0%,39%{opacity:1}46%,100%{opacity:0}}
@keyframes ov-atom-grid{0%,39%{opacity:0}43%,100%{opacity:1}}

/* Monitoring counts: active / total, shared with the Sources list. */
.ov-sources-group .ov-platform-count{white-space:nowrap;font-variant-numeric:tabular-nums}
.ov-platform.is-on .ov-platform-active-count{color:var(--accent)}
.ov-platform-switch:disabled{cursor:not-allowed;opacity:.4}
@media(max-width:800px){.analytics-workspace>.va-page-header>.ov-heading p{max-width:calc(100vw - 250px)}}
