/* Shared presentation only: request and authorization state stays in each controller. */
:root { --pm-motion-press: 120ms; --pm-motion-select: 160ms; --pm-motion-enter: 220ms; --pm-motion-reveal: 320ms; --pm-motion-ease: cubic-bezier(.2,.8,.2,1); }
@keyframes pm-placeholder-pulse { 50% { opacity: .45; } }
@keyframes pm-panel-enter { from { opacity: .35; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes pm-check-enter { from { opacity: 0; transform: scale(.8); } to { opacity: 1; transform: scale(1); } }
.pm-skeleton { display: block; background: currentColor; color: var(--pm-text-muted, #8480a8); opacity: .16; border-radius: 8px; animation: pm-placeholder-pulse 1.2s ease-in-out infinite; }
.pm-skeleton-line { height: .85rem; width: 65%; margin: .65rem 0; }
.pm-skeleton-short { width: 35%; }
.pm-loading-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.pm-loading-tile { padding: 24px; border: 1px solid var(--pm-border, #39364f); border-radius: 16px; }
.pm-loading-chart { height: 240px; margin-top: 20px; }
.analytics-page .analytics-loading { display: block; padding: 20px; }
.analytics-loading > .pm-loading-caption { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; }
.pm-list-loading { padding: 12px; }
.pm-list-loading-row { display: grid; grid-template-columns: 56px 2fr 1fr 1fr; align-items: center; gap: 24px; min-height: 84px; border-bottom: 1px solid var(--pm-border, #39364f); }
.pm-list-loading-row > .pm-skeleton:first-child { height: 56px; }
.pm-list-loading-mobile { display: none; }
.pm-list-status { display: flex; align-items: center; gap: 10px; min-height: 24px; }
.pm-list-status .pm-spinner { width: 16px; height: 16px; }
.pm-summary-retry { margin-left: 8px; padding: 4px; border: 0; background: transparent; color: inherit; text-decoration: underline; cursor: pointer; }
.pm-summary-retry.profile-menu-item { margin-left: 0; padding: 12px; text-decoration: none; }
[data-scheduled-table-shell][aria-busy="true"] :is(button,input) { pointer-events: none; }
.dashboard-page:has([data-shell-summary][aria-busy="true"]) :is([data-shell-scheduled-count],[data-shell-ready-count],[data-shell-attention-count]) { display: inline-block; min-width: 1.5em; height: 1em; color: transparent; border-radius: 4px; background: var(--pm-text-muted, #8480a8); opacity: .25; animation: pm-placeholder-pulse 1.2s ease-in-out infinite; }
[data-shell-summary].is-ready :is(.topbar-summary-line,.topbar-channels) { animation: pm-check-enter var(--pm-motion-select) var(--pm-motion-ease); }
:is(.pm-button,.landing-button,.go-media-mobile-actions-primary,.go-media-mobile-actions-back) { transition: transform var(--pm-motion-press) var(--pm-motion-ease), opacity var(--pm-motion-select) ease; }
:is(.pm-button,.landing-button,.go-media-mobile-actions-primary,.go-media-mobile-actions-back):active:not(:disabled) { transform: scale(.985); }
@media (hover:hover) and (pointer:fine) {
  :is(.pm-button,.landing-button):hover:not(:disabled) { transform: translateY(-2px); }
}
.account-add-dialog, .account-disconnect-dialog, .pm-modal-card, .schedule-action-dialog[open] { animation: pm-panel-enter var(--pm-motion-enter) var(--pm-motion-ease); }
.destination-card-check.is-selected { animation: pm-check-enter var(--pm-motion-select) var(--pm-motion-ease); }
.go-media-flow-stepper button span { position: relative; }
.go-media-flow-stepper button.is-complete span { color: transparent; }
.go-media-flow-stepper button.is-complete span::after { content: "✓"; position: absolute; inset: 0; display: grid; place-items: center; color: var(--go-lab-purple-light, #c4a5ff); animation: pm-check-enter var(--pm-motion-select) var(--pm-motion-ease); }
.go-media-flow-stepper > i { position: relative; }
.go-media-flow-stepper > i.is-complete { background: rgba(92,113,151,.38); }
.go-media-flow-stepper > i::after { content: ""; position: absolute; inset: 0; background: var(--go-lab-purple-light, #a568ff); transform: scaleX(0); transform-origin: left; transition: transform var(--pm-motion-select) ease; }
.go-media-flow-stepper > i.is-complete::after { transform: scaleX(1); }
.go-media-progress-track [data-go-media-progress-bar] { width: 100%; transform: scaleX(0); transform-origin: left; transition: transform var(--pm-motion-select) linear; }
.pm-confirmed::after { content: ""; display: inline-block; width: 6px; height: 10px; margin-left: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); vertical-align: 2px; animation: pm-confirm-enter var(--pm-motion-select) ease; }
@keyframes pm-confirm-enter { from { opacity: 0; transform: rotate(45deg) scale(.8); } to { opacity: 1; transform: rotate(45deg) scale(1); } }
button.is-loading::before { content: ""; display: inline-block; width: .85em; height: .85em; margin-right: .5em; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; vertical-align: -.1em; animation: pm-local-spin .8s linear infinite; }
button.pm-icon-busy::before { margin-right: 0; }
@keyframes pm-local-spin { to { transform: rotate(360deg); } }
[hidden] { display: none !important; }
@media (max-width:767px) {
  .pm-loading-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  .pm-loading-tile { padding: 16px; }
  .pm-list-loading-desktop { display: none; }
  .pm-list-loading-mobile { display: block; }
  .pm-list-loading-row { grid-template-columns: 56px 1fr; gap: 16px; }
  .pm-list-loading-row > :nth-child(n+3) { display: none; }
}
@media (prefers-reduced-motion:reduce) {
  :root { --pm-motion-press: 0ms; --pm-motion-select: 0ms; --pm-motion-enter: 0ms; --pm-motion-reveal: 0ms; }
  html, body { scroll-behavior: auto !important; }
  .pm-skeleton, .dashboard-page:has([data-shell-summary][aria-busy="true"]) :is([data-shell-scheduled-count],[data-shell-ready-count],[data-shell-attention-count]) { animation: none !important; }
  button.is-loading::before { animation: none; }
  :is(.pm-button,.landing-button,.go-media-mobile-actions-primary,.go-media-mobile-actions-back):hover:not(:disabled), :is(.pm-button,.landing-button,.go-media-mobile-actions-primary,.go-media-mobile-actions-back):active:not(:disabled) { transform: none; }
}
