/* Maps the portal.css variables of body.pt to the --ay-* tokens (light by default, dark = Ashiyan Night via html.dark).
   Loaded after portal.css / market-panel.css; portal.css itself stays untouched. Owned by the theme stream. */
body.pt{--bg:var(--ay-bg);--card:var(--ay-surface);--tx:var(--ay-text);--mut:var(--ay-text-muted);--bd:var(--ay-border);--ac:var(--ay-accent);--acbg:var(--ay-accent-soft);--ok:var(--ay-ok);--bad:var(--ay-bad)}
body.pt .pt-btn.primary{background:var(--ay-accent-fill);border-color:var(--ay-accent-fill-lo);color:var(--ay-on-accent)}
body.pt .pt-tab-plus .pt-ti,body.pt .pt-up-cover{background:var(--ay-accent-fill);color:var(--ay-on-accent)}
html.dark body.pt .pt-dot{color:var(--ay-bg)}
body.pt :focus-visible{outline:2px solid var(--ay-focus);outline-offset:2px}
body.pt{font-family:var(--ay-font);line-height:var(--ay-leading)}
body.pt :is(button,input,select,textarea){font-family:inherit}
body.pt :is(button,input,select,textarea):disabled{cursor:not-allowed;opacity:.6}
body.pt :is(button,[role="button"])[aria-busy="true"]{cursor:progress}
body.pt :is(input,textarea)::placeholder{color:var(--ay-text-muted);opacity:1}
@media (prefers-reduced-motion:reduce){
  body.pt :is(.pt-btn,.pt-card,.ay-theme-switch){transition:none;animation:none}
}
