/* PRIME CLICK INTEGRITY | 2026-10-13
   The website has ONE interaction surface. All generated machine optics,
   glass coats and transitional artwork are PAINT, not touch receivers.
   Never apply this rule to real panels, their contents, controls or dialogs. */
body.prime-v2 #main[data-app-shell] > #primePageGlassSlab,
body.prime-v2 #main[data-app-shell] > #primeSiteTransition,
body.prime-v2 #main[data-app-shell] > #primeSiteTransition *,
body.prime-v2 :is(
  .prime-diorama-glass-face,
  .page04-glass-face,
  .prime-spatial-surface-relief,
  .prime-spatial-thickness,
  .prime-machine-rear-plane,
  .prime-machine-seam,
  .prime-device-chassis-corner-wall,
  .prime-prismatic-chrome-optics,
  .prime-panel-chrome-circuit,
  .prime-glass-circuit-foil,
  .prime-viewport-motion-layer,
  .page04-atmosphere,
  .page04-architecture
){
  pointer-events:none!important;
}
/* PRIME OPEN FRONT / REAL NATIVE CONTROLS r4.
   The illustrated glass, gasket and enclosure exist in paint only.
   They are NEVER touch surfaces, including animated pseudo-surfaces and
   generated child optics. Leave the actual panel and its content interactive.
   No blanket pointer-events rules on buttons, links or pane root. */
html[data-prime-spatial-system-enabled="true"][data-prime-spatial-enabled="true"]
body.prime-v2 #main[data-app-shell]>.app-window.is-prime-viewport-active
[data-prime-z-screen="true"] > :is(
  .prime-diorama-glass-face,.prime-diorama-edge,.prime-screen-halo,
  .prime-spatial-thickness,.prime-spatial-surface-relief,
  .prime-machine-rear-plane,.prime-machine-seam,.prime-tunnel-wall,
  .prime-diorama-well-backdrop,.prime-prismatic-chrome-optics
),
html[data-prime-spatial-system-enabled="true"][data-prime-spatial-enabled="true"]
body.prime-v2 #main[data-app-shell]>.app-window.is-prime-viewport-active
[data-prime-z-screen="true"] > :is(
  .prime-diorama-glass-face,.prime-diorama-edge,.prime-screen-halo,
  .prime-spatial-thickness,.prime-spatial-surface-relief,
  .prime-machine-rear-plane,.prime-machine-seam,.prime-tunnel-wall,
  .prime-diorama-well-backdrop,.prime-prismatic-chrome-optics
) *,
html[data-prime-spatial-system-enabled="true"][data-prime-spatial-enabled="true"]
body.prime-v2 #main[data-app-shell]>.app-window.is-prime-viewport-active
[data-prime-z-screen="true"] > :is(
  .prime-diorama-glass-face,.prime-diorama-edge,.prime-screen-halo,
  .prime-spatial-thickness,.prime-spatial-surface-relief,
  .prime-machine-rear-plane,.prime-machine-seam,.prime-tunnel-wall,
  .prime-diorama-well-backdrop,.prime-prismatic-chrome-optics
)::before,
html[data-prime-spatial-system-enabled="true"][data-prime-spatial-enabled="true"]
body.prime-v2 #main[data-app-shell]>.app-window.is-prime-viewport-active
[data-prime-z-screen="true"] > :is(
  .prime-diorama-glass-face,.prime-diorama-edge,.prime-screen-halo,
  .prime-spatial-thickness,.prime-spatial-surface-relief,
  .prime-machine-rear-plane,.prime-machine-seam,.prime-tunnel-wall,
  .prime-diorama-well-backdrop,.prime-prismatic-chrome-optics
)::after{
  pointer-events:none!important;
}
/* Transition visuals must never become a pane of invisible glass over the site.
   The state machine, not a touch-blocking overlay, owns route activation. */
body.prime-v2 #main[data-app-shell] > #primeSiteTransition{
  touch-action:auto!important;
  user-select:none!important;
  -webkit-user-select:none!important;
}
/* Inactive readers and their helper portals cannot strand the rest of the site.
   Active reader remains fully interactive and modal checkout is untouched. */
body.prime-v2 #primeReaderPortal[hidden],
body.prime-v2 #pcReaderTeleport:not(.is-active):not([open]),
body.prime-v2 #page04FullscreenViewer:not([open]){
  pointer-events:none!important;
}
body.prime-v2 #primeCommandDeck :is(
  .prime-deck-bubble-loop,.prime-deck-bubble
){pointer-events:none!important;}
/* Explicitly retain hit testing at authored controls in all 3D modes.
   Do not force-enable disabled/hidden controls or remove native focus rules. */
html[data-prime-spatial-enabled="true"] body.prime-v2
#main[data-app-shell]>.app-window.is-prime-viewport-active
:is(button:not(:disabled),a[href],input:not(:disabled),select:not(:disabled),textarea:not(:disabled),[role="button"]:not([aria-disabled="true"])){
  -webkit-tap-highlight-color:rgba(93,218,255,.2);
  touch-action:manipulation;
}

/* PRIME TOUCH REACHABILITY r3 // physically hit-tested controls.
   Decorators only: no blanket overlay z-index or pointer-events:auto.
   Glass, scanlines, circuit veins and hardware remain visible in Spatial. */
body.prime-v2 :is(
  .prime-diorama-edge,
  .prime-tunnel-wall,
  .prime-screen-halo,
  .prime-glass-aperture-leaf,
  .prime-glass-aperture-foil,
  .prime-spatial-surface-relief,
  .prime-diorama-glass-face,
  .prime-machine-rear-plane,
  .prime-spatial-thickness,
  .prime-viewport-motion-layer
),
body.prime-v2 :is(
  .prime-diorama-edge,
  .prime-screen-halo,
  .prime-diorama-glass-face,
  .prime-spatial-surface-relief,
  .prime-glass-aperture-leaf
)::before,
body.prime-v2 :is(
  .prime-diorama-edge,
  .prime-screen-halo,
  .prime-diorama-glass-face,
  .prime-spatial-surface-relief,
  .prime-glass-aperture-leaf
)::after{
  pointer-events:none!important;
}
/* Preserve the actual button rectangles instead of relying on visual halos.
   Labels and controls can keep their own input/listener authority. */
@media(pointer:coarse){
 body.prime-v2 #primeStorefrontDialog :is(
  .prime-storefront-close,.prime-storefront-tab,.prime-storefront-buy,
  button:not(:disabled):not([hidden])
 ){min-height:44px!important}
 body.prime-v2 #primeStorefrontDialog .prime-storefront-close{
  min-width:44px!important;width:44px!important;height:44px!important
 }
 body.prime-v2 #primeCommandDeck .prime-command-tools-panel :is(
   button:not(:disabled):not([hidden]),[role="button"]:not([aria-disabled="true"])
 ){min-height:44px!important}
 body.prime-v2 #primeCommandDeck .prime-command-tools-close{
  min-width:44px!important;width:44px!important;height:44px!important
 }
 body.prime-v2 #primeReaderPortal .prime-reader-portal-actions
 .prime-reader-portal-action{min-height:44px!important}
}
/* Every page has dock reserve. Focused inputs/buttons in long-form panes
   must be scrolled ABOVE the fixed command deck, never hidden behind it. */
body.prime-v2 #main[data-app-shell]>.app-window.is-prime-viewport-active
 :is(button,a[href],input,textarea,select,[role="button"],[role="tab"]):focus-visible{
  scroll-margin-block-end:calc(var(--prime-pill-system-reserve,64px) + 12px)!important;
  scroll-margin-block-start:14px!important;
}
/* Explicitly disabled/hidden controls remain disabled/hidden. */

/* Service-price and route actions need real 44px finger regions.
   Transparent visual borders are not substitutes for actual hit rectangles. */
@media(pointer:coarse){
 body.prime-v2 #main[data-app-shell]>.app-window.is-prime-viewport-active
 .prime-price-tab:not(:disabled):not([hidden]){
   min-height:44px!important;
 }
 body.prime-v2 #main[data-app-shell]>#intro.app-window
 .service-grid>.service-card[data-discipline-stage="reveal"]>.prime-price-tab{
   min-height:44px!important;
   max-height:none!important;
 }
 body.prime-v2 > #primeCommandDeck.prime-command-deck
 .prime-deck-utilities>button:not(:disabled):not([hidden]){
   min-width:44px!important;width:44px!important;min-height:44px!important;
 }
}
