!DOCTYPE html
html lang=en
head
meta charset=UTF-8
meta name=viewport content=width=device-width, initial-scale=1.0
titleRideFormz Inspection Systemtitle
!-- PWA Manifest & Theme Settings --
link rel=manifest href=manifest.json
meta name=theme-color content=#1e293b
!-- CSS Stylesheet --
link rel=stylesheet href=assetscssstyle.css
head
body
!-- App Header & Network Badge --
header
h1RideFormzh1
div id=connection-status class=status-badge online
span class=dotspan
span id=status-textOnlinespan
div
header
!-- VIEW 1 Inspector Login (Default View) --
main id=auth-view class=card
h2 style=margin-bottom 16px; font-size 1.1rem;Inspector Loginh2
form id=login-form
div
label for=employee-idEmployee IDlabel
input type=text id=employee-id placeholder=e.g. EMP-1001 required
div
div
label for=pinSecurity PINlabel
input type=password id=pin maxlength=6 placeholder=Enter PIN required
div
button type=submitSign Inbutton
form
main
!-- VIEW 2 Dashboard & Form Catalog (Hidden until logged in) --
main id=dashboard-view class=card hidden
div style=display flex; justify-content space-between; align-items center; margin-bottom 16px;
div
h2 id=user-welcome style=font-size 1.1rem;Welcomeh2
p id=user-role style=font-size 0.8rem; color #94a3b8;p
div
button id=logout-btn class=secondary style=width auto; padding 6px 12px; font-size 0.8rem;Logoutbutton
div
!-- Offline Sync Counter --
div class=card style=background #0f172a; margin-bottom 20px;
div class=sync-bar
spanPending Submissions b id=pending-count style=color #fff;0bspan
button id=sync-now-btn style=width auto; padding 6px 12px; font-size 0.8rem;Sync Nowbutton
div
div
!-- Available Forms List --
h3 style=font-size 1rem; margin-bottom 8px;Available Inspection Formsh3
div id=form-catalog-list class=form-grid
!-- Dynamic form items render here --
div
main
!-- JavaScript Libraries & Modules --
script src=assetsjsdb-local.jsscript
script src=assetsjsapp.jsscript
body
html