/* --------------------------------------------------------------------------
   Talerum V26.86.1 — Modal blur performance hotfix

   Performance strategy:
   - overlays never execute backdrop-filter;
   - one lightweight scrim is placed immediately below the active dialog;
   - the static application surface behind the dialog is blurred once with a
     normal filter and then kept frozen while the modal is open;
   - dialog scrolling, typing and animations therefore do not invalidate a
     viewport-sized backdrop-filter on every frame.
   -------------------------------------------------------------------------- */
:root{
  --talerum-modal-perf-blur:3.6px;
  --talerum-modal-perf-saturate:.94;
  --talerum-modal-perf-brightness:.985;
  --talerum-modal-perf-scrim:rgba(31,25,22,.30);
}

#talerum-modal-blur-layer{
  position:fixed;
  inset:0;
  z-index:1;
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  background:var(--talerum-modal-perf-scrim);
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
#talerum-modal-blur-layer.active{
  visibility:visible;
  opacity:1;
}

/* A background node is static for the lifetime of the dialog. A regular
   filter is significantly cheaper here than a live viewport backdrop-filter. */
.talerum-modal-perf-background{
  filter:blur(var(--talerum-modal-perf-blur))
         saturate(var(--talerum-modal-perf-saturate))
         brightness(var(--talerum-modal-perf-brightness))!important;
  transform:translateZ(0) scale(1.006)!important;
  transform-origin:center center!important;
  backface-visibility:hidden!important;
  pointer-events:none!important;
  user-select:none!important;
}

:is(
  .pm-overlay,.modal-overlay,#modalOverlay,.modal-backdrop,.drawer-backdrop,.drawer-overlay,
  .action-modal-overlay,.pr-global-utility-overlay,.pm-auto-overlay,
  .nora-onboarding-overlay,.nora-projection-overlay,.nora-final-modal-overlay,
  .nora-usage-modal-overlay,.talerum-native-modal-overlay,
  .pm-exit-guard,.report-overlay,.clinical-document-overlay,.overlay
){
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}

.talerum-modal-perf-overlay{
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  background:transparent!important;
  isolation:isolate!important;
}

body.talerum-modal-performance-active{
  overflow:hidden!important;
  overscroll-behavior:none!important;
}

.talerum-modal-perf-shell{
  position:relative;
  z-index:1;
  isolation:isolate;
  backface-visibility:hidden;
  contain:layout style;
}
.talerum-modal-perf-shell.talerum-modal-perf-entering{
  will-change:transform,opacity;
}

body.talerum-modal-performance-active :is(
  .modal-head,.modal-header,.drawer-head,.pm-head,.pm-header,
  .report-detail-header,.nora-drawer-head,.clinical-document-modal-head
){
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  background:rgba(255,255,255,.99)!important;
}
body.talerum-modal-performance-active :is(
  .topbar,.top-bar,.page-header,.public-header,.tabs-card
){
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
body.talerum-modal-performance-active .pm-busy-layer{
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  background:rgba(255,255,255,.97)!important;
}
body.talerum-modal-performance-active .pm-dialog-controls .pm-icon-btn{
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  background:rgba(255,255,255,.99)!important;
}


/* Hotfix V26.86.1 — fallback for legacy pages that keep the dialog shell as a
   body-level sibling of the overlay (for example Fila do Dentista and other
   older custom modals). In this structure the performance layer still drives
   the scrim, but we also blur the main app shell directly as a safe fallback. */
.talerum-modal-perf-fallback-background{
  filter:blur(var(--talerum-modal-perf-blur))
         saturate(var(--talerum-modal-perf-saturate))
         brightness(var(--talerum-modal-perf-brightness))!important;
  transform:translateZ(0) scale(1.006)!important;
  transform-origin:center center!important;
  backface-visibility:hidden!important;
  pointer-events:none!important;
  user-select:none!important;
}

body.talerum-modal-perf-legacy-open :is(.modal-overlay,#modalOverlay,.drawer-overlay,.action-modal-overlay,.clinical-document-overlay,.report-overlay,.overlay){
  background:rgba(31,25,22,.18)!important;
}

body.talerum-modal-perf-legacy-open :is(.modal,.drawer,.report-dialog,.clinical-document-modal,#detailModal,#toast,.toast){
  filter:none!important;
  pointer-events:auto!important;
}

@media(prefers-reduced-transparency:reduce){
  :root{
    --talerum-modal-perf-blur:2px;
    --talerum-modal-perf-scrim:rgba(31,25,22,.46);
  }
}
@media(prefers-reduced-motion:reduce){
  .talerum-modal-perf-background{transform:none!important}
}
