@await RenderSectionAsync("Styles", required: false)
@{ int kioskStep = ViewBag.KioskStep ?? 0; // 1, 2, or 3 — 0 means no step dots int kioskSteps = ViewBag.KioskSteps ?? 3; }
@* Logo — hidden on Welcome screen which renders its own centered logo *@ @if (!(bool)(ViewBag.HideLayoutLogo ?? false)) {
@if (!string.IsNullOrEmpty(ViewBag.CompanyLogoUrl as string)) {
} else {
@ViewBag.CompanyName
}
} @* Step dots *@ @if (kioskStep > 0) {
@for (int i = 1; i <= kioskSteps; i++) { string dotClass = i < kioskStep ? "done" : (i == kioskStep ? "active" : "");
}
} @* Validation summary *@ @if (ViewData.ModelState.IsValid == false) {
Please correct the highlighted fields below.
} @RenderBody()
@* Inactivity timer — redirect to Welcome when idle too long. Intake steps set ViewBag.InactivityTimeoutMs = 45000 (45 s). Welcome screen keeps the default 5-minute timeout. *@ @{ bool showInactivityTimer = (bool)(ViewBag.ShowInactivityTimer ?? true); string welcomeUrl = ViewBag.WelcomeUrl as string ?? "/Kiosk/Welcome"; int inactivityMs = ViewBag.InactivityTimeoutMs as int? ?? (5 * 60 * 1000); } @if (showInactivityTimer) { } @await RenderSectionAsync("Scripts", required: false)