{{define "layout_start"}} {{.Title}} — Felhom.eu {{/* ?v= cache-bust: Cloudflare edge-caches /static/* for 4h — an unversioned URL keeps serving the PREVIOUS release's asset after a deploy (0.126.1 live QA hit this on CSS; the logo/favicon share the failure mode). The controller version busts it every release. */}} {{template "icon_sprite"}}
{{if .ClaimLegacyOpen}}
{{T "layout.a_vezerlopult_meg_nincs_jelszoval"}}
{{end}} {{/* R-241 (v0.206.0) — the recovery reminder bar. Rendered while the situation holds, the customer has not opted out of reminders for THIS situation, and they have not clicked it away this visit. It NEVER replaces the entry point on the Távoli mentés page — silencing a reminder is not the same as removing the route. */}} {{if .RecoveryBanner}}
{{if .RecoveryAbandonDays}} {{/* R-302: the DELETION and its date are certain and always render. The RETRIEVAL clause is conditional on the hub still holding the same sealed package it held when the customer decided — pinned then, compared now. It rendered unconditionally, and was false on a reachable state: a fresh escrow ceremony during the window replaces the package, which is the exact act that cost both demo boxes their history on 2026-08-04. A countdown started before this shipped carries no pin and takes the cautious branch. */}} {{T "layout.a_korabbi_tavoli_menteseidet_nap"}} {{if .RecoveryAbandonRetrievalOffered}}{{T "layout.addig_meg_visszaszerezheted_oket_a"}}{{else}}{{T "layout.hogy_ezek_meg_visszaszerezhetok_e"}}{{end}} {{else if ge .RecoveryReminderTier 14}} {{T "layout.ket_hete_varnak_rad_a"}} {{else if ge .RecoveryReminderTier 7}} {{T "layout.mar_egy_hete_megvannak_a"}} {{else if ge .RecoveryReminderTier 3}} {{T "layout.a_korabbi_tavoli_menteseid_megvannak"}} {{else}} {{T "layout.a_korabbi_tavoli_menteseid_megvannak_2"}} {{end}} {{T "layout.megnezem"}}
{{.CSRFField}}
{{if not .RecoveryAbandonDays}}
{{.CSRFField}}
{{end}}
{{end}} {{/* R-543 (v0.245.0) — the escrow reminder bar. The off-site tier is ON by default and does NOT RUN until the household creates its recovery code (zero-knowledge escrow: their code is the only key). The pause is the design; what was missing was ASKING. Same mechanism as the R-241 bar above — dismissable for the visit, back at the next one, gone for good when the escrow completes. */}} {{/* R-871 (v0.295.0, `09` decision 110) — the missed-backup banner: when the last daily backup is over 26 h old, why (the box was off at the backup time, from the box's own record) and a suggested time. Closing it lasts until the NEXT missed backup time (durable, the night ledger); a successful night removes it. Never changes the time. */ -}} {{if .MissedBackupBanner}}
{{.MissedBackupMessage}} {{.MissedBackupHint}} {{T "layout.missed_backup_change"}}
{{.CSRFField}}
{{end -}} {{if .EscrowBanner}}
{{T "layout.a_tavoli_mentes_szunetel_amig"}}
{{.CSRFField}}
{{end}} {{if .Alerts}}
{{range .Alerts}} {{if and (not .Inline) (or (not .PageOnly) (pageMatch .PageOnly $.Page))}}
{{if eq .Level "error"}}{{else if eq .Level "warning"}}{{else}}{{end}} {{.Message}} {{if .Link}}{{.LinkText}} →{{end}}
{{end}} {{end}}
{{end}} {{end}} {{define "layout_end"}}
{{end}}