/* Prime Creation // Platform Adapter v5 conflict strip
   Capability and accessibility policy only.
   PrimeViewportAuthority owns geometry. PrimeRuntime owns shared layout/scroll.
   Page modules own their internal composition. */

:root{
  --prime-platform-vw:100vw;
  --prime-platform-vh:100dvh;
  --prime-platform-layout-vw:100vw;
  --prime-platform-layout-vh:100dvh;
  --prime-platform-vv-offset-x:0px;
  --prime-platform-vv-offset-y:0px;
  --prime-platform-vv-scale:1;
  --prime-platform-dpr:1;
  --prime-platform-keyboard-height:0px;
  --prime-platform-keyboard-visible:0;
  --prime-platform-control-min:40px;
  --prime-platform-scrollbar:10px;
  --prime-platform-safe-top:env(safe-area-inset-top,0px);
  --prime-platform-safe-right:env(safe-area-inset-right,0px);
  --prime-platform-safe-bottom:env(safe-area-inset-bottom,0px);
  --prime-platform-safe-left:env(safe-area-inset-left,0px);
  --prime-platform-motion-factor:1;
  --prime-platform-contrast-factor:1;
  --prime-platform-transparency-factor:1;
}

html[data-prime-input-primary="coarse"],html.prime-platform-touch{--prime-platform-control-min:44px;--prime-platform-scrollbar:0px}
html[data-prime-input-primary="fine"]{--prime-platform-control-min:36px;--prime-platform-scrollbar:10px}
html.prime-platform-desktop{scrollbar-gutter:stable}
html.prime-platform-windows,html.prime-platform-linux{text-rendering:optimizeLegibility;-webkit-font-smoothing:auto}
html.prime-platform-android,html.prime-platform-ios{-webkit-text-size-adjust:100%;text-size-adjust:100%}

html[data-prime-input-primary="coarse"] :where(button,[role="button"],input,select,textarea),html.prime-platform-touch :where(button,[role="button"],input,select,textarea){min-block-size:var(--prime-platform-control-min)}
html[data-prime-last-input="keyboard"] :where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:2px solid currentColor;outline-offset:3px}
html :where([data-prime-local-scroll="true"],[data-prime-child-scroll]){overscroll-behavior:contain}
html.prime-platform-desktop :where([data-prime-local-scroll="true"],[data-prime-child-scroll]){scrollbar-gutter:stable}
html.prime-platform-touch :where([data-prime-local-scroll="true"],[data-prime-child-scroll]){-webkit-overflow-scrolling:touch}
html[data-prime-virtual-keyboard="open"]{--prime-platform-keyboard-visible:1}
html[data-prime-virtual-keyboard="closed"]{--prime-platform-keyboard-visible:0}

html[data-prime-data-mode="save"] body.prime-v2 #main>.ambient,html[data-prime-data-mode="offline"] body.prime-v2 #main>.ambient{filter:none!important;opacity:.35!important}
html[data-prime-data-mode="save"] body.prime-v2 video,html[data-prime-data-mode="offline"] body.prime-v2 video{background-image:none!important}

@media(hover:none) and (pointer:coarse){:where(button,[role="button"],a,input,select,textarea){touch-action:manipulation}}
@media(prefers-reduced-motion:reduce){:root{--prime-platform-motion-factor:0}}
@media(prefers-reduced-transparency:reduce){:root{--prime-platform-transparency-factor:0}html[data-prime-platform-adapter] body.prime-v2 :where(.app-dock,.prime-pill-shell,dialog){backdrop-filter:none!important;-webkit-backdrop-filter:none!important}}
@media(prefers-contrast:more){:root{--prime-platform-contrast-factor:1.2}:where(button,a,input,select,textarea,[role="button"]){outline-offset:2px}}
@media(forced-colors:active){:root{--prime-platform-contrast-factor:1.35}:where(button,a,input,select,textarea,[role="button"]){forced-color-adjust:auto;border-color:ButtonText!important}}
