/* ============================================================
   ParsinX — Base layer
   RTL-first reset + document defaults. Imported last so it can
   reference all tokens.
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  direction: rtl;
  text-align: right;
  background: var(--surface-app);
  color: var(--text-primary);
  font: var(--type-body);
  font-feature-settings: "ss01" 0;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* App void backdrop: deep radial wash + faint grid feel */
.px-app-bg {
  background:
    radial-gradient(120% 80% at 50% -10%, rgba(61,123,255,0.10), transparent 60%),
    radial-gradient(90% 60% at 100% 0%, rgba(139,92,246,0.08), transparent 55%),
    var(--surface-app);
}

/* LTR escape hatch for code, IPs, specs, numerals in mixed copy */
.px-ltr { direction: ltr; unicode-bidi: isolate; text-align: left; }

h1,h2,h3,h4,h5,h6 { margin: 0; font-family: var(--font-display); color: var(--text-primary); }
p { margin: 0; }
a { color: var(--text-accent); text-decoration: none; }

::selection { background: color-mix(in srgb, var(--px-azure) 40%, transparent); color: #fff; }

:focus-visible { outline: none; box-shadow: var(--glow-focus); border-radius: var(--radius-xs); }

/* Thin branded scrollbars */
* { scrollbar-width: thin; scrollbar-color: var(--px-ink-500) transparent; }
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-thumb { background: var(--px-ink-500); border-radius: 999px; border: 2px solid transparent; background-clip: content-box; }
*::-webkit-scrollbar-thumb:hover { background: var(--px-ink-400); background-clip: content-box; }
