/*
 * Agency Portal motion layer.
 * Keeps interaction motion consistent with the existing side drawers without
 * changing booking, authentication, status or data behaviour.
 */

:root {
  --agency-motion-fast: 160ms;
  --agency-motion-standard: 260ms;
  --agency-motion-ease: cubic-bezier(.32,.72,0,1);
}

.booking-group,
.agency-shift-overview,
.worker-card,
.worker-preview-section,
.contractor-directory-card {
  transition:
    border-color var(--agency-motion-fast) ease,
    box-shadow var(--agency-motion-standard) ease,
    transform var(--agency-motion-fast) ease;
}

.booking-group-chevron,
.agency-shift-overview summary::before,
.worker-card-chevron,
.worker-preview-chevron,
.contractor-directory-card summary::before {
  transition: transform var(--agency-motion-standard) var(--agency-motion-ease);
}

.bell-dropdown {
  display: block;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-7px) scale(.985);
  transform-origin: top right;
  transition:
    opacity var(--agency-motion-fast) ease,
    transform var(--agency-motion-standard) var(--agency-motion-ease),
    visibility 0s linear var(--agency-motion-standard);
}

.bell-dropdown.open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0) scale(1);
  transition-delay: 0s;
}

.worker-actions-dropdown {
  opacity: 0;
  transform: translateY(5px) scale(.98);
  transform-origin: bottom right;
  transition:
    opacity var(--agency-motion-fast) ease,
    transform var(--agency-motion-fast) var(--agency-motion-ease);
}

.worker-actions-menu[open] .worker-actions-dropdown {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.modal-overlay {
  display: flex;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity var(--agency-motion-standard) ease,
    visibility 0s linear var(--agency-motion-standard);
}

.modal-overlay.show {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition-delay: 0s;
}

.modal-overlay .modal {
  animation: none;
  opacity: 0;
  transform: translateY(14px) scale(.985);
  transition:
    opacity var(--agency-motion-fast) ease,
    transform var(--agency-motion-standard) var(--agency-motion-ease);
}

.modal-overlay.show .modal {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/*
 * Pulse only the actionable Broadcast / Worker Responses control when
 * new activity exists. The surrounding job card remains steady.
 */
.job-card .act-btn.btn-flash {
  animation: flash-pulse .6s infinite;
}

@media (prefers-reduced-motion: reduce) {
  .booking-group,
  .agency-shift-overview,
  .worker-card,
  .worker-preview-section,
  .contractor-directory-card,
  .booking-group-chevron,
  .agency-shift-overview summary::before,
  .worker-card-chevron,
  .worker-preview-chevron,
  .contractor-directory-card summary::before,
  .bell-dropdown,
  .worker-actions-dropdown,
  .modal-overlay,
  .modal-overlay .modal,
  .job-card .act-btn.btn-flash {
    transition: none !important;
    animation: none !important;
  }
}
