forked from c-fu/arah2
- theme.ts: colorScheme → data-tg-theme on <html>; header_bg_color 0-1 luminance fallback (T-03-11 — Telegram hex is a signal, never a consumed CSS value); applyTheme's ONLY statement is the attribute set (Pitfall 7 / D-10, greppable invariant) - backbutton.ts: hide() at init (one shell state), onClick is total — close() at the root, no dead-ends (UI-SPEC §BackButton) - safe-area.ts: env(safe-area-inset-*) probe ∪ WebApp.safeAreaInset, per-edge max, version-gated at 8.0, applied as --safe-* custom properties on :root - webapp.ts + backbutton/safe-area never read node_modules types; @types/telegram-web-app stays dropped (web/package.json untouched)