/* ============================================================================
   PROCEDURAL BACKDROP SUPPORT (registry: APB_Component_Procedural; runtime:
   apb-page-proc.js, injected by the page router only when data-apb-proc exists).
   The .apb-rx-procbg element hosts the generated canvas; .apb-rx-pscrim is the
   server-built text-legibility gradient. Both live as FIRST children of their
   positioned host (theme wrapper or section root), stacked under the content.
   Zero important-flags.
   ============================================================================ */
.apb-rx-procbg{position:absolute;inset:0;z-index:-2;overflow:hidden;pointer-events:none}
/* auto-applied industry-theme hint: a whisper of texture, not a graphic (explicit choices are full-strength) */
.apb-rx-procbg--hint{opacity:.28}
.apb-rx-pscrim{position:absolute;inset:0;z-index:-1;pointer-events:none}
/* interactive surfaces need the pointer to reach the host, not the canvas — the runtime listens on
   the host element, so the layers themselves always stay transparent to events (set above). */
[data-apb-prochost]{position:relative;isolation:isolate}
/* :has() as belt-and-braces for markup that gains a procbg without the marker (e.g. hand edits) */
:is(.apb-rx-theme,.apb-rx-section):has(>.apb-rx-procbg){position:relative;isolation:isolate}
/* no-JS / pre-boot: the host's CSS backdrop tone (emitted by the engine) simply shows through.
   NOTE: this rule also repairs a pre-existing gap — the engine has always emitted
   --apb-rx-page-bg for solid/gradient/image kit surfaces, but nothing consumed it. */
.apb-rx-theme[data-apb-surface]{background:var(--apb-rx-page-bg,transparent)}
