:root{--motion-fast:120ms;--motion-standard:180ms;--motion-ease:cubic-bezier(.2,.7,.2,1)}

/* Small, local responses keep the interface calm without animating whole pages. */
.button,.nav,.topbar-product,.topbar-workspace,.notification-bell,.top-profile,.global-search-toggle,.user-row-main,.resource-row,.notification-row,.campaign-open,.drive-file,.resource-result,details>summary{transition:background-color var(--motion-fast) ease,border-color var(--motion-fast) ease,color var(--motion-fast) ease,box-shadow var(--motion-fast) ease,opacity var(--motion-fast) ease,transform var(--motion-fast) var(--motion-ease)}
.button:active,.nav:active,.notification-bell:active,.top-profile:active,.global-search-toggle:active{transform:translateY(1px) scale(.985)}
input:not([type="checkbox"]):not([type="radio"]),select,textarea{transition:border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease,background-color var(--motion-fast) ease}
input[type="checkbox"],input[type="radio"]{transition:box-shadow var(--motion-fast) ease,transform var(--motion-fast) var(--motion-ease)}
input[type="checkbox"]:active,input[type="radio"]:active{transform:scale(.92)}

.workspace-menu:not([hidden]),.global-search-results:not([hidden]),.user-action-menu[open]>div,.event-action-menu[open]>div,.resource-action-menu[open]>div{transform-origin:top right;animation:ccp-menu-in var(--motion-fast) var(--motion-ease) both}
.settings-collapsible[open]>.settings-collapsible-body,.channel-setting-row[open]>.channel-setting-edit,.campaign-templates[open]>div,.channel-resource-section[open]>.channel-resource-list{animation:ccp-reveal var(--motion-standard) var(--motion-ease) both}
.resource-modal,.report-builder-overlay,.confirm-overlay,.campaign-assets-overlay,.campaign-channels-overlay{animation:ccp-fade-in var(--motion-standard) ease both}
.resource-picker,.report-builder,.confirm-dialog,.campaign-assets-dialog,.campaign-channels-dialog{animation:ccp-dialog-in var(--motion-standard) var(--motion-ease) both}

@media(max-width:900px){
  .button,.nav,.topbar-product,.notification-bell,.top-profile,.global-search-toggle{will-change:transform}
  .resource-picker,.report-builder,.confirm-dialog,.campaign-assets-dialog,.campaign-channels-dialog{transform-origin:bottom center}
  .campaign-card:active,.campaign-open:active,.resource-row:active,.notification-row:active,.user-row-main:active{background:#f3f7f0;transform:scale(.995)}
}

@media(hover:hover){
  .campaign-open:hover,.user-row-main:hover{transform:translateY(-1px)}
}

@keyframes ccp-menu-in{from{opacity:0;transform:translateY(-4px) scale(.985)}to{opacity:1;transform:none}}
@keyframes ccp-reveal{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
@keyframes ccp-fade-in{from{opacity:0}to{opacity:1}}
@keyframes ccp-dialog-in{from{opacity:0;transform:translateY(8px) scale(.992)}to{opacity:1;transform:none}}

@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}
