/**
 * Presidium Perf — cliques instantâneos + hover de fotos rápido porém suave
 */
.presidium-pro,
body.login-page.login-page--ultra {
  --pro-dur: 0.1s;
  --pro-ease: cubic-bezier(0.2, 0, 0, 1);
  --perf-ease: cubic-bezier(0.2, 0, 0, 1);
  --perf-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --perf-tap: 0.05s;
  --perf-hover: 80ms;
  --perf-ui: 0.11s;
  --perf-lift: 0.12s;
  --perf-zoom: 0.2s;
  --perf-modal: 0.14s;
  /* Fotos — hover rápido e fluido */
  --perf-photo-lift: 0ms;
  --perf-photo-shadow: 0ms;
  --perf-photo-zoom: 130ms;
  --perf-photo-filter: 0ms;
  --perf-photo-shine: 0ms;
  --perf-photo-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --perf-photo-ease-zoom: cubic-bezier(0.22, 1, 0.36, 1);
  --perf-photo-zoom-scale: 1.045;
}

.presidium-pro *,
.presidium-pro *::before,
.presidium-pro *::after,
body.login-page.login-page--ultra *,
body.login-page.login-page--ultra *::before,
body.login-page.login-page--ultra *::after {
  scroll-behavior: auto;
}

.presidium-pro button,
.presidium-pro .btn,
.presidium-pro .nav-btn,
.presidium-pro .inicio-filter-btn,
.presidium-pro .arch-view-toggle button,
.presidium-pro .arch-sort-th,
.presidium-pro .avisos-option,
.presidium-pro .notify-switch-row,
.presidium-pro .session-sheet-row,
.presidium-pro .login-btn,
.presidium-pro .login-password-toggle,
.presidium-pro .photo-card,
.presidium-pro .cadastro-event,
.presidium-pro .arch-table-wrap tbody tr,
.presidium-pro input,
.presidium-pro select,
.presidium-pro textarea,
body.login-page.login-page--ultra button,
body.login-page.login-page--ultra input {
  touch-action: manipulation;
}

@media (hover: hover) and (pointer: fine) {
  .presidium-pro .nav-btn,
  .presidium-pro .btn,
  .presidium-pro .inicio-filter-btn,
  .presidium-pro .inicio-all-section-flag,
  .presidium-pro .inicio-desl-section-flag,
  .presidium-pro .inicio-st-section-flag,
  .presidium-pro .arch-view-toggle button,
  .presidium-pro .arch-sort-th,
  .presidium-pro .avisos-option,
  .presidium-pro .avisos-test-link,
  .presidium-pro .session-sheet-row,
  .presidium-pro .nav-session-user,
  .presidium-pro .brand-home-btn,
  .presidium-pro .login-btn,
  .presidium-pro .login-password-toggle,
  .presidium-pro .cadastro-event,
  .presidium-pro .arch-table-wrap tbody tr,
  .presidium-pro .notify-switch-row {
    transition-duration: var(--perf-hover) !important;
    transition-timing-function: var(--perf-ease) !important;
  }

  .presidium-pro .photo-card,
  .presidium-pro .photo-card.inicio-card--overlay,
  .presidium-pro .photo-card.inicio-card--ultra,
  .presidium-pro .mobile-inicio-grid .photo-card {
    transition: none !important;
  }

  .inicio-page--ultra .photo-card.inicio-card--ultra .inicio-card-shine {
    transition: opacity var(--perf-photo-shine) var(--perf-photo-ease) !important;
  }

  .presidium-pro .modal-backdrop,
  .presidium-pro .modal,
  .presidium-pro .card,
  .presidium-pro input,
  .presidium-pro select,
  .presidium-pro textarea,
  .presidium-pro .login-input-shell {
    transition-duration: var(--perf-ui) !important;
    transition-timing-function: var(--perf-ease) !important;
  }
}

.presidium-pro .nav-btn.is-tapping,
.presidium-pro .btn.is-tapping,
.presidium-pro .inicio-filter-btn.is-tapping,
.presidium-pro .login-btn.is-tapping,
.presidium-pro .avisos-option.is-tapping,
.presidium-pro .cadastro-event.is-tapping {
  transform: scale(0.965) !important;
  transition-duration: var(--perf-tap) !important;
  transition-timing-function: var(--perf-ease) !important;
}

.presidium-pro .nav-btn:active,
.presidium-pro .btn:active,
.presidium-pro .inicio-filter-btn:active:not(:disabled),
.presidium-pro .login-btn:active:not(:disabled) {
  transition-duration: var(--perf-tap) !important;
}

@media (hover: hover) and (pointer: fine) {
  .presidium-pro .inicio-grid .photo-card.inicio-card--dock:hover,
  .presidium-pro .inicio-grid .photo-card.inicio-card--overlay:hover,
  .presidium-pro .inicio-grid .photo-card.inicio-card--ultra:hover,
  .presidium-pro .photo-card:hover,
  .inicio-ui-modern .inicio-grid .photo-card.inicio-card--dock:hover,
  .inicio-ui-modern .inicio-grid .photo-card.inicio-card--overlay:hover,
  .inicio-ui-modern .inicio-grid .photo-card.inicio-card--ultra:hover,
  .inicio-page--v3 .inicio-grid .photo-card.inicio-card--overlay:hover,
  .inicio-page--ultra .inicio-grid .photo-card.inicio-card--ultra:hover,
  .inicio-page--ultra .inicio-grid .photo-card.inicio-card--dock:hover {
    will-change: auto;
  }

  .inicio-ui-modern .inicio-grid .photo-card.inicio-card--dock:hover .photo-card-frame img,
  .inicio-ui-modern .inicio-grid .photo-card.inicio-card--overlay:hover .photo-card-frame img,
  .inicio-ui-modern .inicio-grid .photo-card.inicio-card--ultra:hover .photo-card-frame img,
  .inicio-page--ultra .inicio-grid .photo-card.inicio-card--ultra:hover .photo-card-frame img,
  .inicio-page--ultra .inicio-grid .photo-card.inicio-card--dock:hover .photo-card-frame img {
    will-change: transform;
  }

  .presidium-pro .inicio-grid .photo-card.inicio-card--dock:hover,
  .presidium-pro .inicio-grid .photo-card.inicio-card--overlay:hover,
  .presidium-pro .inicio-grid .photo-card.inicio-card--ultra:hover,
  .inicio-ui-modern .inicio-grid .photo-card.inicio-card--dock:hover,
  .inicio-ui-modern .inicio-grid .photo-card.inicio-card--overlay:hover,
  .inicio-ui-modern .inicio-grid .photo-card.inicio-card--ultra:hover,
  .inicio-page--ultra .inicio-grid .photo-card.inicio-card--ultra:hover,
  .inicio-page--ultra .inicio-grid .photo-card.inicio-card--dock:hover,
  .inicio-page--ultra .inicio-grid .photo-card.inicio-card--overlay:hover,
  .inicio-page--ultra .mobile-inicio-grid .photo-card.inicio-card--ultra:hover,
  .inicio-page--ultra .mobile-inicio-grid .photo-card.inicio-card--dock:hover {
    transform: none !important;
  }

  .inicio-page--ultra .photo-card.inicio-card--ultra:hover .inicio-card-shine,
  .inicio-page--ultra .photo-card.inicio-card--dock:hover .inicio-card-shine,
  .inicio-page--ultra .photo-card.inicio-card--overlay:hover .inicio-card-shine {
    opacity: 0 !important;
    display: none !important;
  }
}

.inicio-grid--filtering .photo-card,
.inicio-grid--filtering .inicio-skeleton-card,
.inicio-ui-modern .inicio-grid.inicio-grid--filtering .photo-card {
  animation-duration: 0.14s !important;
}

.inicio-ui-modern .inicio-grid.inicio-grid--filtering {
  transition-duration: 0.01ms !important;
}

.inicio-ui-modern .inicio-grid.inicio-grid--fresh .photo-card.inicio-card,
.inicio-ui-modern .inicio-grid .photo-card.inicio-card--overlay {
  animation: none !important;
}

.inicio-ui-modern .inicio-grid.inicio-grid--flow .photo-card.inicio-card--overlay:nth-child(n+6),
.inicio-ui-modern .mobile-inicio-grid .photo-card.inicio-card--overlay:nth-child(n+5) {
  content-visibility: auto;
  contain-intrinsic-size: auto 208px;
}

.inicio-ui-modern .inicio-grid.inicio-grid--flow .photo-card.inicio-card--overlay,
.inicio-ui-modern .mobile-inicio-grid .photo-card.inicio-card--overlay {
  contain: layout paint;
}

.inicio-ui-modern .photo-card-frame {
  contain: layout paint style;
}

.inicio-ui-modern .photo-card-frame > img.inicio-photo-hq {
  transform: translateZ(0);
}

@media (hover: hover) and (pointer: fine) {
  .inicio-ui-modern .inicio-grid .photo-card.inicio-card--overlay:hover .photo-card-frame > img,
  .inicio-ui-modern .mobile-inicio-grid .photo-card.inicio-card--overlay:hover .photo-card-frame > img {
    will-change: transform;
  }
}

@keyframes inicio-filter-fade {
  0% { opacity: 0.55; transform: translateY(3px); }
  100% { opacity: 1; transform: translateY(0); }
}

@keyframes inicio-card-in {
  from { opacity: 0; transform: translateY(6px) scale(0.992); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.presidium-pro .app-page-panel.is-active {
  content-visibility: visible;
}

.presidium-pro .app-page-panel:not(.is-active) {
  content-visibility: hidden;
  contain-intrinsic-size: 0 800px;
}

@media (prefers-reduced-motion: reduce) {
  .presidium-pro,
  body.login-page.login-page--ultra {
    --pro-dur: 0.01ms;
    --perf-hover: 0.01ms;
    --perf-ui: 0.01ms;
    --perf-lift: 0.01ms;
    --perf-zoom: 0.01ms;
    --perf-photo-lift: 0.01ms;
    --perf-photo-shadow: 0.01ms;
    --perf-photo-zoom: 0.01ms;
    --perf-photo-filter: 0.01ms;
    --perf-photo-shine: 0.01ms;
  }
}

body.login-page.login-page--ultra .login-input-shell,
body.login-page.login-page--ultra .login-btn,
body.login-page.login-page--ultra .login-password-toggle,
body.login-page.login-page--ultra .login-switch,
body.login-page.login-page--ultra .login-switch::after {
  transition-duration: var(--perf-ui) !important;
  transition-timing-function: var(--perf-ease) !important;
}

body.login-page.login-page--ultra .login-btn.is-tapping,
body.login-page.login-page--ultra .login-password-toggle.is-tapping {
  transform: scale(0.97) !important;
  transition-duration: var(--perf-tap) !important;
}

body.login-page.login-page--ultra .login-stage {
  animation-duration: 0.45s !important;
}

/* —— Início / galeria: hover só GPU; mockup mantém contraste nas fotos —— */
#app.presidium-pro .inicio-ui-modern:not(.inicio-page--mockup) .inicio-grid .photo-card .photo-card-frame > img,
#app.presidium-pro .inicio-ui-modern:not(.inicio-page--mockup) .inicio-grid .photo-card .photo-card-frame img,
#app.presidium-pro .inicio-ui-modern:not(.inicio-page--mockup) .mobile-inicio-grid .photo-card .photo-card-frame > img,
#app.presidium-pro .inicio-ui-modern:not(.inicio-page--mockup) .mobile-inicio-grid .photo-card .photo-card-frame img,
.inicio-ui-modern:not(.inicio-page--mockup) .inicio-grid .photo-card .photo-card-frame > img,
.inicio-ui-modern:not(.inicio-page--mockup) .inicio-grid .photo-card .photo-card-frame img,
.inicio-ui-modern:not(.inicio-page--mockup) .mobile-inicio-grid .photo-card .photo-card-frame > img,
.inicio-ui-modern:not(.inicio-page--mockup) .mobile-inicio-grid .photo-card .photo-card-frame img,
.inicio-page--ultra:not(.inicio-page--mockup) .photo-card .photo-card-frame > img,
.inicio-page--v3:not(.inicio-page--mockup) .inicio-grid .photo-card .photo-card-frame > img {
  transition: transform var(--perf-photo-zoom, 130ms) var(--perf-photo-ease-zoom) !important;
  filter: none !important;
}

@media (hover: hover) and (pointer: fine) {
  #app.presidium-pro .inicio-ui-modern:not(.inicio-page--mockup) .inicio-grid .photo-card:hover .photo-card-frame > img,
  #app.presidium-pro .inicio-ui-modern:not(.inicio-page--mockup) .inicio-grid .photo-card:hover .photo-card-frame img,
  #app.presidium-pro .inicio-ui-modern:not(.inicio-page--mockup) .mobile-inicio-grid .photo-card:hover .photo-card-frame > img,
  #app.presidium-pro .inicio-ui-modern:not(.inicio-page--mockup) .mobile-inicio-grid .photo-card:hover .photo-card-frame img,
  .inicio-ui-modern:not(.inicio-page--mockup) .inicio-grid .photo-card:hover .photo-card-frame > img,
  .inicio-ui-modern:not(.inicio-page--mockup) .inicio-grid .photo-card:hover .photo-card-frame img,
  .inicio-ui-modern:not(.inicio-page--mockup) .mobile-inicio-grid .photo-card:hover .photo-card-frame > img,
  .inicio-ui-modern:not(.inicio-page--mockup) .mobile-inicio-grid .photo-card:hover .photo-card-frame img,
  .inicio-page--ultra:not(.inicio-page--mockup) .photo-card:hover .photo-card-frame > img,
  .inicio-page--v3:not(.inicio-page--mockup) .inicio-grid .photo-card:hover .photo-card-frame > img {
    transform: scale(var(--perf-photo-zoom-scale, 1.045)) translate3d(0, 0, 0) !important;
    -webkit-transform: scale(var(--perf-photo-zoom-scale, 1.045)) translate3d(0, 0, 0) !important;
    filter: none !important;
  }
}

.gal-modern .gal-img-shell > img {
  content-visibility: auto;
}
