{
  "schema": "ergefeng-runway-omai-audit-v001",
  "recorded_at_myt": "2026-09-13T17:29:14+08:00",
  "route": "/runway/",
  "governance": "E:\\ยี่กอฮง 二哥丰\\governance\\v002\\DESIGN_REFERENCE.md",
  "build_folder": "E:\\ergefeng\\builds\\runway-omai\\v001",
  "findings": [
    {
      "area": "fonts",
      "status": "pass",
      "evidence": "Packaged Canela headings, Silvana prose and Decagram labels. Static-font metadata checked: Thin100, Light300, Regular400; CSS ranges do not imply variable fonts."
    },
    {
      "area": "palette",
      "status": "pass",
      "evidence": "Governance v002 semantic colours retained; inverse follows prefers-color-scheme. Light palette rendered in isolated QA fixture; host device naturally rendered dark."
    },
    {
      "area": "type scale",
      "status": "corrected",
      "evidence": "Runway h1 32px mobile / 48px desktop; h2 24px / 32px; body16px with1.5 leading. Large numeric figures are an explicit dashboard adaptation."
    },
    {
      "area": "labels",
      "status": "corrected",
      "evidence": "Decagram11px/1.1px tracking mobile,13px/1.3px desktop; Silvana now used for long explanatory prose."
    },
    {
      "area": "gutters",
      "status": "corrected",
      "evidence": "20px mobile/tablet and40px desktop, safe-area insets retained."
    },
    {
      "area": "section rhythm",
      "status": "corrected",
      "evidence": "Consistent24/32px component spacing and64px disclosure rows; dashboard density is the documented adaptation to the source website module spacing."
    },
    {
      "area": "controls",
      "status": "corrected",
      "evidence": "Rectangular48px buttons/selects, equal mobile action columns and stronger contrasting borders; native selects remain16px to avoid iOS input zoom."
    },
    {
      "area": "disclosures",
      "status": "corrected",
      "evidence": "Consistent uppercase labels and plus/minus indicators across Runway and embedded Console contexts."
    },
    {
      "area": "skip link",
      "status": "corrected",
      "evidence": "Keyboard Tab then Enter verified focus=runway, fragment=#runway, visible region begins24px below viewport top."
    },
    {
      "area": "in-page tabs",
      "status": "corrected",
      "evidence": "All four underlying tabs work without jumping Runway to page top.36 focused assertions passed; actual Forecast/Evidence/Method views inspected."
    },
    {
      "area": "numeric geometry",
      "status": "pass",
      "evidence": "All five horizon selections tested at320px; band rows remain48px and price rows24px. No horizontal page overflow for tested live values."
    },
    {
      "area": "timestamps",
      "status": "pass",
      "evidence": "Original deal and received times retained; narrow screens use reserved date/time slots. PENGU prices retain6 decimals."
    },
    {
      "area": "provenance and storage",
      "status": "clarified",
      "evidence": "Legacy benchmark labelled as underlying Console; footer distinguishes device display records, hosted Runway ledger and static-upload tab retention."
    },
    {
      "area": "refresh policy",
      "status": "preserved",
      "evidence": "Feed and runtime byte-identical. Active updates retain scroll; foreground return refreshes and returns to top. In-page Console tab change fixed separately."
    },
    {
      "area": "mathematics and database",
      "status": "preserved",
      "evidence": "Model, data, feed and Worker byte-identical. Application change only guards tab scrolling; panel change only inserts a missing space."
    },
    {
      "area": "responsive states",
      "status": "pass",
      "evidence": "320,375,430,768,932 landscape and1280 CSS-pixel widths examined; tested page has no horizontal overflow. Wider layout uses two projection columns."
    },
    {
      "area": "physical iOS and text zoom",
      "status": "not physically tested",
      "evidence": "Desktop responsive browser checks are not a physical iPhone Safari/Chrome certification. OS text enlargement and browser-engine-specific behaviour remain device checks."
    },
    {
      "area": "scope",
      "status": "bounded",
      "evidence": "Audit covers the entire new Runway route including expanded history/context and its underlying Console tabs. Independent Console/Intraday routes were preserved, not newly recertified."
    }
  ],
  "preserved_files": [
    {
      "file": "runway-assets/model-data.v001.js",
      "unchanged": true,
      "sha256": "6812cd7e0cab6d444fc775c1f5993a2f91095a6f5747e35131cf347a4f27a659"
    },
    {
      "file": "runway-assets/runway-model.v003.js",
      "unchanged": true,
      "sha256": "75cc3a4f8583aa9c6f03eadef081908ede1178ff217502c9274a3f191ffe7803"
    },
    {
      "file": "runway-assets/market-feed.v004.js",
      "unchanged": true,
      "sha256": "e454e3f261c92573f79d25c15ad6f956a1216ed9503a09c0949aef3fc5a19b50"
    },
    {
      "file": "console/runtime.v003.js",
      "unchanged": true,
      "sha256": "c7a4f228d180c5b2098a59fdd369877658ccd29dd5d3f99892f3ca6112bc1324"
    },
    {
      "file": "console/presentation.v005.js",
      "unchanged": true,
      "sha256": "29ef7b5910e63e7e25c793c79a12016c10aa949b4219253495d8cfd3255e036b"
    },
    {
      "file": "console/visible-gaps.v002.js",
      "unchanged": true,
      "sha256": "76dfe44d4f77fb4881aa36ad7fe60d3b845a607a36caf2e69710df92cb40871e"
    },
    {
      "file": "console/original-script0.v001.js",
      "unchanged": true,
      "sha256": "01cf9ab5db242c2e3056225916a8b2766d1300f9afb7fc412eceaa6da5f712c4"
    },
    {
      "file": "console/index.html",
      "unchanged": true,
      "sha256": "fa28033e8638dbecded48d513a52af395b43506e4f1bcca60b816969c1efa72c"
    },
    {
      "file": "intraday/index.html",
      "unchanged": true,
      "sha256": "b2f43961b3ce4a47ecdfe94a85ec13ae8dc648b37bd4b05f2b29d0298d5df70d"
    },
    {
      "file": "deciles/index.html",
      "unchanged": true,
      "sha256": "8eb6f6d430a9a32c2dd5ecf1cce0784341111fe42475836d99b8a3275268d2ef"
    }
  ],
  "tab_assertions": 36,
  "viewports_css_px": [
    [
      320,
      800
    ],
    [
      375,
      812
    ],
    [
      430,
      932
    ],
    [
      768,
      1024
    ],
    [
      932,
      430
    ],
    [
      1280,
      900
    ]
  ],
  "limitations": [
    "No physical iPhone execution.",
    "Light palette rendering used a local QA override, while the shipped theme follows device settings.",
    "Longer feed-error text can expand its reserved area; live numeric fields tested do not wrap.",
    "This is a UI compliance audit, not a new predictive validation."
  ]
}