/* Native SocialHeat motion, informed by Animate UI's restrained motion principles.
   No React/Motion runtime. Opacity-only entrances preserve fixed/sticky positioning. */
:root {
  --sh-motion-fast:120ms;
  --sh-motion-enter:180ms;
  --sh-motion-ease:cubic-bezier(.16,1,.3,1)
}
@keyframes sh-ui-fade {
  from {
    opacity:.35
  }
  to {
    opacity:1
  }
}
@media(prefers-reduced-motion:no-preference) {
  body[data-sh-motion] :is(.app-content,#content) {
    animation:sh-ui-fade var(--sh-motion-enter) var(--sh-motion-ease)
  }
  body[data-sh-motion] :is(.btn,.icon-btn,.quick-btn,.btn-count,.btn-export,.col-toggle,.sl-chip,.bhd-prompt-toggle,.csv-export-tab,.api-tab,.bh-local-tabs>a,.sidebar a,#nav a,[role=tab]) {
    transition-property:background-color,border-color,color,box-shadow;
    transition-duration:var(--sh-motion-fast);
    transition-timing-function:var(--sh-motion-ease)
  }
  body[data-sh-motion] :is(input,select,textarea):not([type=range]) {
    transition:border-color var(--sh-motion-fast) ease,box-shadow var(--sh-motion-fast) ease
  }
  body[data-sh-motion] :is(dialog[open],.dropdown-menu.show,.dropdown-menu.is-open,.popover.show,.modal.show .modal-content,.custom-modal-box,.waiting-modal-box) {
    animation:sh-ui-fade var(--sh-motion-enter) var(--sh-motion-ease)
  }
  body[data-sh-motion] dialog[open]::backdrop {
    animation:sh-ui-fade var(--sh-motion-fast) ease
  }
  body[data-sh-motion] :is(.tab-pane.active,.api-tab-panel.active) {
    animation:sh-ui-fade var(--sh-motion-enter) var(--sh-motion-ease)
  }
  body[data-sh-motion] #toastContainer .sh-notice {
    animation:sh-ui-fade var(--sh-motion-enter) var(--sh-motion-ease)
  }
  body[data-sh-motion] #toast:not([hidden]) {
    animation:sh-ui-fade var(--sh-motion-enter) var(--sh-motion-ease)
  }
}
@media(prefers-reduced-motion:reduce) {
  body[data-sh-motion] :is(.app-content,#content,dialog,.dropdown-menu,.popover,.modal-content,.custom-modal-box,.waiting-modal-box,.tab-pane,.api-tab-panel,.sh-notice,#toast) {
    animation:none!important
  }
  body[data-sh-motion] :is(.btn,.icon-btn,.quick-btn,.btn-count,.btn-export,.col-toggle,.sl-chip,.bhd-prompt-toggle,.csv-export-tab,.api-tab,.bh-local-tabs>a,.sidebar a,#nav a,[role=tab],input,select,textarea) {
    transition:none!important
  }
  body[data-sh-motion] dialog::backdrop {
    animation:none!important
  }
}
@media print {
  body[data-sh-motion] * {
    animation:none!important;
    transition:none!important
  }
}
/* Expressive tier: independent scale/translate keep existing positioning transforms. */ :root {
  --sh-motion-enter:240ms
}
@keyframes sh-ui-popup {
  from {
    opacity:0;
    scale:.96
  }
  to {
    opacity:1;
    scale:1
  }
}
@keyframes sh-ui-menu {
  from {
    opacity:0;
    scale:.98;
    translate:0 -5px
  }
  to {
    opacity:1;
    scale:1;
    translate:0 0
  }
}
@keyframes sh-ui-card {
  from {
    opacity:.2;
    translate:0 12px
  }
  to {
    opacity:1;
    translate:0 0
  }
}
@keyframes sh-ui-toast {
  from {
    opacity:0;
    translate:14px 0
  }
  to {
    opacity:1;
    translate:0 0
  }
}
.sh-motion-tabs {
  position:relative
}
.sh-motion-tab-indicator {
  position:absolute;
  bottom:0;
  height:2px;
  border-radius:2px;
  background:var(--primary,#0b61b4);
  pointer-events:none;
  transform-origin:left center;
  z-index:2
}
.sh-motion-tabs .api-tab.active::after {
  opacity:0
}
@media(prefers-reduced-motion:no-preference) {
  body[data-sh-motion] :is(dialog[open],.modal.show .modal-content,.custom-modal-box,.waiting-modal-box) {
    animation:sh-ui-popup 260ms var(--sh-motion-ease)
  }
  body[data-sh-motion] :is(.dropdown-menu.show,.dropdown-menu.is-open,.popover.show) {
    animation:sh-ui-menu 200ms var(--sh-motion-ease)
  }
  body[data-sh-motion] :is(.bho-kpis,.sl-kpis,.sp-metrics,.metrics-grid) > :is(.card,.sp-metric,.sl-kpi,.metric-card) {
    animation:sh-ui-card 340ms var(--sh-motion-ease) backwards
  }
  body[data-sh-motion] :is(.bho-kpis,.sl-kpis,.sp-metrics,.metrics-grid)>:nth-child(2) {
    animation-delay:35ms
  }
  body[data-sh-motion] :is(.bho-kpis,.sl-kpis,.sp-metrics,.metrics-grid)>:nth-child(3) {
    animation-delay:70ms
  }
  body[data-sh-motion] :is(.bho-kpis,.sl-kpis,.sp-metrics,.metrics-grid)>:nth-child(4) {
    animation-delay:105ms
  }
  body[data-sh-motion]:not([data-sh-motion-input=keyboard]) :is(.btn,.icon-btn,.quick-btn,.btn-count,.btn-export) {
    transition:background-color 140ms ease,border-color 140ms ease,color 140ms ease,box-shadow 180ms ease,scale 140ms var(--sh-motion-ease)
  }
  body[data-sh-motion]:not([data-sh-motion-input=keyboard]) :is(.btn,.icon-btn,.quick-btn,.btn-count,.btn-export):active:not(:disabled) {
    scale:.97
  }
  body[data-sh-motion] :is(#toastContainer .sh-notice,#toast:not([hidden])) {
    animation:sh-ui-toast 240ms var(--sh-motion-ease)
  }
  body[data-sh-motion] :is(.sidebar,#sidebar) {
    transition:width 240ms var(--sh-motion-ease),transform 240ms var(--sh-motion-ease),translate 240ms var(--sh-motion-ease)
  }
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  body[data-sh-motion]:not([data-sh-motion-input=keyboard]) :is(.btn,.icon-btn,.quick-btn):hover:not(:disabled) {
    box-shadow:0 3px 10px color-mix(in srgb,var(--primary,#0b61b4) 12%,transparent)
  }
}
@supports (interpolate-size:allow-keywords) and selector(details::details-content) {
  @media(prefers-reduced-motion:no-preference) {
    body[data-sh-motion]:not([data-sh-motion-input=keyboard]) details::details-content {
      interpolate-size:allow-keywords;
      block-size:0;
      overflow:clip;
      transition:block-size 240ms var(--sh-motion-ease),content-visibility 240ms allow-discrete
    }
    body[data-sh-motion]:not([data-sh-motion-input=keyboard]) details[open]::details-content {
      block-size:auto
    }
  }
}
@media(prefers-reduced-motion:reduce) {
  body[data-sh-motion] :is(.card,.sp-metric,.sl-kpi,.metric-card,.sidebar,#sidebar) {
    animation:none!important;
    transition:none!important
  }
  .sh-motion-tab-indicator {
    display:none
  }
}
@media print {
  body[data-sh-motion] * {
    animation:none!important;
    transition:none!important
  }
}
/* Page Insight uses its own rendered dashboard components, not generic .card markup. */ @media(prefers-reduced-motion:no-preference) {
  body[data-sh-motion] .sh-dashboard .dash-kpis>.dash-kpi {
    animation:sh-ui-card 440ms var(--sh-motion-ease) backwards
  }
  body[data-sh-motion] .sh-dashboard .dash-kpis>.dash-kpi:nth-child(2) {
    animation-delay:50ms
  }
  body[data-sh-motion] .sh-dashboard .dash-kpis>.dash-kpi:nth-child(3) {
    animation-delay:100ms
  }
  body[data-sh-motion] .sh-dashboard .dash-kpis>.dash-kpi:nth-child(4) {
    animation-delay:150ms
  }
  body[data-sh-motion] .sh-dashboard .dash-kpis>.dash-kpi:nth-child(5) {
    animation-delay:200ms
  }
  body[data-sh-motion] .sh-dashboard .dash-kpis>.dash-kpi:nth-child(6) {
    animation-delay:250ms
  }
  body[data-sh-motion] .sh-dashboard :is(.dash-analysis>.dash-card,.dash-analysis>.leaders-card,.dash-bottom>.dash-card) {
    animation:sh-ui-card 460ms var(--sh-motion-ease) 120ms backwards
  }
  body[data-sh-motion] .sh-dashboard .dash-analysis>.leaders-card {
    animation-delay:200ms
  }
  body[data-sh-motion] .sh-dashboard .dash-bottom>.dash-card {
    animation-delay:240ms
  }
  body[data-sh-motion] .sh-dashboard :is(.dash-button,.chart-tab,.legend-button,.dash-select) {
    transition:background-color 160ms ease,border-color 160ms ease,color 160ms ease,box-shadow 200ms ease,scale 140ms var(--sh-motion-ease)
  }
  body[data-sh-motion]:not([data-sh-motion-input=keyboard]) .sh-dashboard :is(.dash-button,.chart-tab,.legend-button):active:not(:disabled) {
    scale:.97
  }
  body[data-sh-motion] .sh-dashboard .dash-kpi {
    transition:translate 200ms var(--sh-motion-ease),box-shadow 200ms ease,border-color 160ms ease
  }
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  body[data-sh-motion]:not([data-sh-motion-input=keyboard]) .sh-dashboard .dash-kpi:hover {
    translate:0 -3px;
    box-shadow:0 6px 18px #0f172a0a;
    border-color:var(--primary-line,#c2d9ed)
  }
  body[data-sh-motion] .sh-dashboard :is(.dash-button,.chart-tab,.legend-button):hover:not(:disabled) {
    box-shadow:0 3px 10px #0b61b412
  }
}
@media(prefers-reduced-motion:reduce) {
  body[data-sh-motion] .sh-dashboard :is(.dash-kpi,.dash-card,.leaders-card,.dash-button,.chart-tab,.legend-button,.dash-select) {
    animation:none!important;
    transition:none!important
  }
}
@media print {
  body[data-sh-motion] .sh-dashboard * {
    animation:none!important;
    transition:none!important
  }
}
/* Audited surfaces: explicit legacy states and module-specific component names. */ @media(prefers-reduced-motion:no-preference) {
  body[data-sh-motion] :is( .modal-overlay.show>.modal-box, .si-modal-overlay.active>.si-modal, .kw-modal-overlay.active>.kw-modal, .leadbuzz-modal-overlay.active>.leadbuzz-modal, .user-modal-overlay>.user-modal-dialog, .modal-detail-custom,.custom-alert-box ) {
    animation:sh-ui-popup 260ms var(--sh-motion-ease)
  }
  body[data-sh-motion] :is( .modal-overlay.show,.si-modal-overlay.active,.kw-modal-overlay.active, .leadbuzz-modal-overlay.active,.user-modal-overlay,.modal-backdrop-custom, .custom-alert-overlay,.waiting-modal-overlay ) {
    animation:sh-ui-fade 160ms ease
  }
  body[data-sh-motion] :is(.ac-dropdown.show,.filter-count-dropdown.show,.menu-item.open>.submenu) {
    animation:sh-ui-menu 180ms var(--sh-motion-ease)
  }
  body[data-sh-motion] :is( .ov-kpis,.adx-kpis,.ai-kpis,.aip-metrics,.bh-kpis,.bhd-metrics,.bhs-stats, .fp-kpi-grid,.intel-kpi-grid,.metrics-grid-6,.sh-ov-kpi-strip,.sh-user-kpis,.sh-detail-kpis )>* {
    animation:sh-ui-card 400ms var(--sh-motion-ease) backwards
  }
  body[data-sh-motion] :is(.ov-kpis,.adx-kpis,.ai-kpis,.aip-metrics,.bh-kpis,.bhd-metrics,.bhs-stats,.fp-kpi-grid,.intel-kpi-grid,.metrics-grid-6,.sh-ov-kpi-strip,.sh-user-kpis,.sh-detail-kpis)>:nth-child(2) {
    animation-delay:40ms
  }
  body[data-sh-motion] :is(.ov-kpis,.adx-kpis,.ai-kpis,.aip-metrics,.bh-kpis,.bhd-metrics,.bhs-stats,.fp-kpi-grid,.intel-kpi-grid,.metrics-grid-6,.sh-ov-kpi-strip,.sh-user-kpis,.sh-detail-kpis)>:nth-child(3) {
    animation-delay:80ms
  }
  body[data-sh-motion] :is(.ov-kpis,.adx-kpis,.ai-kpis,.aip-metrics,.bh-kpis,.bhd-metrics,.bhs-stats,.fp-kpi-grid,.intel-kpi-grid,.metrics-grid-6,.sh-ov-kpi-strip,.sh-user-kpis,.sh-detail-kpis)>:nth-child(4) {
    animation-delay:120ms
  }
  body[data-sh-motion] :is(.ov-kpis,.adx-kpis,.ai-kpis,.aip-metrics,.bh-kpis,.bhd-metrics,.bhs-stats,.fp-kpi-grid,.intel-kpi-grid,.metrics-grid-6,.sh-ov-kpi-strip,.sh-user-kpis,.sh-detail-kpis)>:nth-child(5) {
    animation-delay:160ms
  }
  body[data-sh-motion] :is(.ov-kpis,.adx-kpis,.ai-kpis,.aip-metrics,.bh-kpis,.bhd-metrics,.bhs-stats,.fp-kpi-grid,.intel-kpi-grid,.metrics-grid-6,.sh-ov-kpi-strip,.sh-user-kpis,.sh-detail-kpis)>:nth-child(6) {
    animation-delay:200ms
  }
  body[data-sh-motion] :is(.config-tab-pane.active,.aip-tab-panel:not([hidden]),.tab-pane-content.active,.tabs~.tab-content) {
    animation:sh-ui-fade 180ms var(--sh-motion-ease)
  }
  body[data-sh-motion] :is(.custom-toast:not(.hide),.leadbuzz-toast) {
    animation:sh-ui-toast 240ms var(--sh-motion-ease)
  }
  body[data-sh-motion] :is(.alert,.bh-alert,.bhd-notice,.api-alert,.sh-alita-notice,.waiting-notice-banner) {
    animation:sh-ui-fade 180ms ease
  }
  body[data-sh-motion] button {
    transition-property:background-color,border-color,color,box-shadow,scale;
    transition-duration:140ms;
    transition-timing-function:var(--sh-motion-ease)
  }
  body[data-sh-motion]:not([data-sh-motion-input=keyboard]) button:active:not(:disabled) {
    scale:.97
  }
  body[data-sh-motion] .auth-card {
    animation:sh-ui-card 360ms var(--sh-motion-ease)
  }
  body[data-sh-motion-preview] .grid>.card {
    animation:sh-ui-card 340ms var(--sh-motion-ease) backwards
  }
  body[data-sh-motion-preview] .grid>.card:nth-child(2) {
    animation-delay:50ms
  }
  body[data-sh-motion-preview] .grid>.card:nth-child(3) {
    animation-delay:100ms
  }
  body[data-sh-motion-preview] .grid>.card:nth-child(4) {
    animation-delay:150ms
  }
}
/* Specific legacy selectors can beat earlier opt-out rules: these guards must be last. */ @media(prefers-reduced-motion:reduce) {
  body[data-sh-motion] *,body[data-sh-motion] *::before,body[data-sh-motion] *::after,body[data-sh-motion] dialog::backdrop {
    animation:none!important;
    transition:none!important;
    scroll-behavior:auto!important
  }
}
body[data-sh-motion] [data-sh-motion=off],body[data-sh-motion] [data-sh-motion=off] * {
  animation:none!important;
  transition:none!important
}
@media print {
  body[data-sh-motion] *,body[data-sh-motion] *::before,body[data-sh-motion] *::after {
    animation:none!important;
    transition:none!important
  }
}
