/* A shared motion rhythm for Neox. Geometry and navigation remain unchanged. */
/* These entrances used to overlap the route transition and restart on refresh. */
.shell
  :is(
    .project-content,
    .project-view > section,
    .project-result-report,
    .report-card,
    .report-table-panel,
    .business-hero,
    .business-week-fill,
    .business-balance-bar span,
    .business-project-cost,
    .analysis-cost-detail,
    .designer-properties,
    .invoice-addition-line,
    .editor-form .line-edit
  ),
dialog[open] {
  animation: none !important;
}
.shell :is(.installment-card, .accounting-stats button):hover {
  transform: none;
}
.shell .business-analysis button:active {
  transform: none;
}
/* Reserve the scrollbar so tall/short pages do not shift sideways. */
@media screen {
  html:has(.shell) {
    scrollbar-gutter: stable;
  }
}
@media screen and (prefers-reduced-motion: no-preference) {
  body:has(.shell) {
    --neox-ease: cubic-bezier(0.22, 1, 0.36, 1);
  }
  .shell [data-neox-motion] {
    animation: none !important;
  }
  .shell
    :is(
      .nav button,
      .rail-button,
      .rail-avatar,
      .sidebar-collapse,
      .report-tabs button,
      .project-tabs button,
      .document-row-actions button,
      .week-workspace button,
      .filter-disclosure > summary,
      .page-head button,
      .actions button
    ) {
    transition:
      background-color 170ms ease,
      border-color 170ms ease,
      box-shadow 210ms var(--neox-ease),
      color 170ms ease;
  }
  .shell
    :is(.page-head, .actions, .document-row-actions, .week-heading)
    button:not(:disabled):hover {
    box-shadow: 0 3px 9px #17354d12;
  }
  .shell :is(.report-card, .panel, .week-overview, .week-projects) {
    transition:
      border-color 220ms ease,
      box-shadow 220ms var(--neox-ease);
  }
  .shell :is(.report-card, .week-overview, .week-projects):hover {
    border-color: #c9ddea;
    box-shadow: 0 5px 18px #17354d08;
  }
  .shell :is(input, select, textarea) {
    transition:
      border-color 170ms ease,
      box-shadow 200ms var(--neox-ease),
      background-color 170ms ease;
  }
  .shell :is(tbody tr, .client-avatar, .badge, .week-project-title) {
    transition:
      background-color 170ms ease,
      color 170ms ease;
  }
  .shell :is(.report-tabs, .project-tabs) button[aria-current="page"] {
    box-shadow: 0 2px 6px #17354d0d;
  }
  .shell .navigation-account:not([hidden]) {
    animation: neox-popover 230ms var(--neox-ease) both;
    transform-origin: bottom left;
  }
  #toast {
    transition:
      opacity 220ms ease,
      transform 280ms var(--neox-ease);
  }
  @keyframes neox-popover {
    from {
      opacity: 0;
      transform: translateY(7px) scale(0.98);
    }
    to {
      opacity: 1;
      transform: none;
    }
  }
}
@media (prefers-reduced-motion: reduce) {
  .shell *,
  .shell *::before,
  .shell *::after,
  dialog,
  dialog::backdrop,
  #toast {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}
@media print {
  .shell *,
  .shell *::before,
  .shell *::after {
    animation: none !important;
    transition: none !important;
  }
}
