/* v143.2 — transition latérale entre les 5 pages de la navigation basse. */
html {
  --v1432-tab-duration: 320ms;
  --v1432-tab-ease: cubic-bezier(.22,.78,.22,1);
}
html[data-motion="economy"] { --v1432-tab-duration: 210ms; }
html[data-motion="minimal"] { --v1432-tab-duration: 0ms; }

body.v1432-tab-transition {
  overflow-x: hidden !important;
}

/* Snapshot visuel de la page quittée. La nav basse reste au-dessus. */
.v1432-swipe-ghost {
  position: fixed;
  inset: 0;
  z-index: 49;
  overflow: hidden;
  pointer-events: none;
  contain: paint;
  background: var(--paper, #fff);
  will-change: transform;
}
html[data-theme="dark"] .v1432-swipe-ghost { background: var(--paper, #15181b); }

.v1432-swipe-ghost.v1432-out-left {
  animation: v1432-out-left var(--v1432-tab-duration) var(--v1432-tab-ease) both;
}
.v1432-swipe-ghost.v1432-out-right {
  animation: v1432-out-right var(--v1432-tab-duration) var(--v1432-tab-ease) both;
}

/* La vraie page entrante se déplace sous la navigation fixe. */
body.v1432-tab-transition > main.page.v1432-in-right,
body.v1432-tab-transition > #month-settings-sheet.v1432-in-right,
body.v1432-tab-transition > #notification-sheet.v1432-in-right,
body.v1432-tab-transition > #profile-sheet.v1432-in-right {
  animation: v1432-in-right var(--v1432-tab-duration) var(--v1432-tab-ease) both !important;
  will-change: transform;
}
body.v1432-tab-transition > main.page.v1432-in-left,
body.v1432-tab-transition > #month-settings-sheet.v1432-in-left,
body.v1432-tab-transition > #notification-sheet.v1432-in-left,
body.v1432-tab-transition > #profile-sheet.v1432-in-left {
  animation: v1432-in-left var(--v1432-tab-duration) var(--v1432-tab-ease) both !important;
  will-change: transform;
}

@keyframes v1432-in-right {
  from { transform: translate3d(100%,0,0); }
  to   { transform: translate3d(0,0,0); }
}
@keyframes v1432-in-left {
  from { transform: translate3d(-100%,0,0); }
  to   { transform: translate3d(0,0,0); }
}
@keyframes v1432-out-left {
  from { transform: translate3d(0,0,0); }
  to   { transform: translate3d(-100%,0,0); }
}
@keyframes v1432-out-right {
  from { transform: translate3d(0,0,0); }
  to   { transform: translate3d(100%,0,0); }
}

/* Les anciennes animations d'entrée ne doivent pas se superposer au swipe. */
body.v1432-tab-transition.v139-main-transition #income-section:not([hidden]),
body.v1432-tab-transition.v139-main-transition #income-summary:not([hidden]),
body.v1432-tab-transition.v139-main-transition #transactions-hub:not([hidden]),
body.v1432-tab-transition.v139-main-transition #fixed-section:not([hidden]),
body.v1432-tab-transition.v139-main-transition #variable-section:not([hidden]),
body.v1432-tab-transition.v139-main-transition .expense-tabs:not([hidden]) {
  animation: none !important;
}
body.v1432-tab-transition #month-settings-sheet.app-main-page.open,
body.v1432-tab-transition #notification-sheet.app-main-page.open,
body.v1432-tab-transition #profile-sheet.app-main-page.open {
  /* v143PageIn est remplacée par v1432-in-* sur le root. */
  animation-name: none;
}
body.v1432-tab-transition #month-settings-sheet.app-main-page.open.v1432-in-right,
body.v1432-tab-transition #notification-sheet.app-main-page.open.v1432-in-right,
body.v1432-tab-transition #profile-sheet.app-main-page.open.v1432-in-right {
  animation: v1432-in-right var(--v1432-tab-duration) var(--v1432-tab-ease) both !important;
}
body.v1432-tab-transition #month-settings-sheet.app-main-page.open.v1432-in-left,
body.v1432-tab-transition #notification-sheet.app-main-page.open.v1432-in-left,
body.v1432-tab-transition #profile-sheet.app-main-page.open.v1432-in-left {
  animation: v1432-in-left var(--v1432-tab-duration) var(--v1432-tab-ease) both !important;
}

/* Ombre très légère sur le bord de la page entrante : effet de pile native. */
html:not([data-motion="minimal"]) body.v1432-tab-transition > .v1432-in-right::before,
html:not([data-motion="minimal"]) body.v1432-tab-transition > .v1432-in-left::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 999;
  box-shadow: 0 0 24px rgba(0,0,0,.055);
}

html[data-motion="minimal"] .v1432-swipe-ghost,
html[data-motion="minimal"] .v1432-in-right,
html[data-motion="minimal"] .v1432-in-left {
  animation: none !important;
}
