/* Cockpit motion is an optional reading aid. Values and ribbon geometry stay fixed. */
body[data-business-theme]{--bc-motion-ease:cubic-bezier(.2,.7,.2,1);--bc-trace-color:#2d629d;--bc-trace-opacity:.2;--bc-motion-wash:rgba(45,98,157,.045);--bc-motion-shadow:rgba(23,49,87,.055)}
body[data-business-theme="dark"]{--bc-trace-color:#edf6ff;--bc-trace-opacity:.22;--bc-motion-wash:rgba(139,186,238,.055);--bc-motion-shadow:rgba(153,198,255,.025)}

/* Interaction lives inside each card, so the containing grid never clips a lift. */
body[data-business-theme] #main[data-page="overview"] .gf-kpi.bk-kpi::after{content:"";position:absolute;pointer-events:none;left:12px;right:12px;bottom:0;height:2px;border-radius:2px;background:var(--bc-accent);transform:scaleX(0);transform-origin:left center;opacity:0}
body[data-business-theme][data-business-motion="on"] #main[data-page="overview"] .gf-kpi.bk-kpi{transition:background-color 180ms ease,box-shadow 180ms ease}
body[data-business-theme][data-business-motion="on"] #main[data-page="overview"] .gf-kpi.bk-kpi strong{transition:transform 200ms var(--bc-motion-ease);transform:translateY(0);transform-origin:left center}
body[data-business-theme][data-business-motion="on"] #main[data-page="overview"] .gf-kpi.bk-kpi>span.bk-kpi-arrow{transition:transform 200ms var(--bc-motion-ease),opacity 180ms ease;transform:translate(0,0)}
body[data-business-theme][data-business-motion="on"] #main[data-page="overview"] .gf-kpi.bk-kpi::after{transition:transform 220ms var(--bc-motion-ease),opacity 160ms ease}
body[data-business-theme][data-business-motion="on"] #main[data-page="overview"] .gf-kpi.bk-kpi:is(:hover,:focus-visible){background-color:var(--bc-hover);box-shadow:inset 0 0 28px var(--bc-motion-shadow)}
body[data-business-theme][data-business-motion="on"] #main[data-page="overview"] .gf-kpi.bk-kpi:is(:hover,:focus-visible) strong{transform:translateY(-2px)}
body[data-business-theme][data-business-motion="on"] #main[data-page="overview"] .gf-kpi.bk-kpi:is(:hover,:focus-visible)>span.bk-kpi-arrow{transform:translate(2px,-2px);opacity:1}
body[data-business-theme][data-business-motion="on"] #main[data-page="overview"] .gf-kpi.bk-kpi:is(:hover,:focus-visible)::after{transform:scaleX(1);opacity:.8}
body[data-business-theme][data-business-motion="on"] #main[data-page="overview"] .gf-kpi.bk-kpi:active strong{transform:translateY(0) scale(.985);transition-duration:85ms}
body[data-business-theme][data-business-motion="on"] #main[data-page="overview"] .gf-kpi.bk-kpi:active>span.bk-kpi-arrow{transform:translate(0,0);transition-duration:85ms}
body[data-business-theme][data-business-motion="on"] #main[data-page="overview"] .gf-kpi.bk-kpi:is(.active,[aria-pressed="true"])::after{transform:scaleX(1);opacity:1}
body[data-business-theme] .bc-motion-toggle[aria-pressed="true"]{color:var(--bc-accent);border-color:var(--bc-border)}

/* Fine center-line marks suggest direction, not live events or additional volume. */
body[data-business-theme] .bc-flow-layer{pointer-events:none;user-select:none}
body[data-business-theme] .bc-flow-trace{fill:none;stroke:var(--bc-trace-color);stroke-width:2.2;stroke-linecap:round;stroke-dasharray:2 98;stroke-dashoffset:100;opacity:var(--bc-trace-opacity);pointer-events:none;vector-effect:non-scaling-stroke}
body[data-business-theme][data-business-motion="on"] .bc-flow-trace{animation:bc-flow-forward 7.6s linear infinite;animation-delay:var(--bc-flow-delay,0s);transition:opacity 180ms ease}
body[data-business-theme="dark"] .bc-flow-trace{stroke-width:2.4}
body[data-business-theme] .bc-flow-trace.is-muted{opacity:0}
body[data-business-theme] .bc-flow-trace.is-selected{opacity:.42}
body[data-business-theme] .gf-chart.bc-has-hover .bc-flow-trace.bc-hover-related:not(.is-muted){opacity:.43}
body[data-business-theme] .gf-chart.bc-has-hover .bc-flow-trace.bc-hover-muted:not(.is-selected):not(.is-muted){opacity:.04}
body[data-business-theme] .gf-chart.bc-has-hover .gf-flow.bc-hover-related:not(.is-muted){fill-opacity:.66}
body[data-business-theme] .gf-chart.bc-has-hover .gf-flow.bc-hover-muted:not(.is-selected):not(.is-muted){fill-opacity:.105}
body[data-business-theme="dark"] .gf-chart.bc-has-hover .gf-flow.bc-hover-related:not(.is-muted){fill-opacity:.74}
body[data-business-theme="dark"] .gf-chart.bc-has-hover .gf-flow.bc-hover-muted:not(.is-selected):not(.is-muted){fill-opacity:.12}
body[data-business-theme] .gf-chart.bc-has-hover .gf-node.bc-hover-muted:not(.is-selected):not(.is-muted){opacity:.38}
body[data-business-theme] .gf-chart.bc-has-hover .gf-node.bc-hover-related:not(.is-muted)>rect:not(.gf-logo-backplate){stroke:var(--bc-accent);stroke-width:1.5}
body[data-business-theme="dark"] .gf-chart.bc-has-hover .gf-node.bc-hover-related:not(.is-muted)>rect:not(.gf-logo-backplate){stroke:#c2ddfc}
body[data-business-theme][data-business-motion="on"] .gf-flow{transition:fill-opacity 160ms ease,stroke 160ms ease}
body[data-business-theme][data-business-motion="on"] .gf-node{transition:opacity 160ms ease}
body[data-business-theme].bc-motion-suspended .bc-flow-trace{animation-play-state:paused!important}
@keyframes bc-flow-forward{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}

/* The application applies this class once on route entry, never on every filter. */
body[data-business-theme][data-business-motion="on"] .gf-canvas.bc-canvas-enter{animation:bc-canvas-arrive 220ms ease-out 1 both}
@keyframes bc-canvas-arrive{from{opacity:.7}to{opacity:1}}

/* Only the drawer shell moves, once. Text remains still after it has opened. */
body[data-business-theme][data-business-motion="on"] #dialog.business-drill[open]{animation:bc-drawer-arrive 180ms var(--bc-motion-ease) 1 both}
@keyframes bc-drawer-arrive{from{opacity:.76;transform:translateX(12px)}to{opacity:1;transform:translateX(0)}}

/* Theme switching interpolates paint only, never positions, sizes or chart values. */
body[data-business-theme][data-business-motion="on"].bc-theme-transition,
body[data-business-theme][data-business-motion="on"].bc-theme-transition :is(#sidebar,#topbar,#main,#footer,#dialog),
body[data-business-theme][data-business-motion="on"].bc-theme-transition :is(#sidebar,#topbar,#main,#footer,#dialog) *{transition-property:background-color,color,border-color,fill,stroke,box-shadow;transition-duration:280ms;transition-timing-function:ease}

/* Opting out removes decoration while leaving ordinary focus and hover feedback. */
body[data-business-theme][data-business-motion="off"] .bc-flow-layer{display:none}
body[data-business-theme][data-business-motion="off"] :is(.bc-flow-trace,.gf-canvas,#dialog.business-drill){animation:none!important}
body[data-business-theme][data-business-motion="off"] :is(.gf-flow,.gf-node,.gf-kpi.bk-kpi,.gf-kpi.bk-kpi strong,.bk-kpi-arrow){transition:none!important}
body[data-business-theme][data-business-motion="off"] #main[data-page="overview"] .gf-kpi.bk-kpi::after{transition:none}

@media(prefers-reduced-motion:reduce){
 body[data-business-theme] .bc-flow-layer{display:none!important}
 body[data-business-theme],body[data-business-theme] *,body[data-business-theme] *::before,body[data-business-theme] *::after{animation:none!important;transition-duration:0s!important;transition-delay:0s!important;scroll-behavior:auto!important}
 body[data-business-theme] #main[data-page="overview"] .gf-kpi.bk-kpi strong,body[data-business-theme] #main[data-page="overview"] .gf-kpi.bk-kpi>span.bk-kpi-arrow{transform:none!important}
 body[data-business-theme] #dialog.business-drill[open]{transform:none!important}
}
@media print{body[data-business-theme] .bc-flow-layer{display:none!important}}
