{% extends "base.html" %}
{#
The engine's one credential prompt (ADR-0019).
A plain form posting `application/x-www-form-urlencoded`, with no scripting involved:
the same reason the dashboard's range controls are real links. It also keeps the body on
the one form encoding Starlette parses from the standard library, so a login page does
not pull a parser dependency into an MIT engine.
Reads need no session, so this page is only ever reached deliberately or by a save that
came back 401 — never as a wall in front of the dashboard.
#}
{% block title %}Sign in — Mesopic{% endblock %}
{% block heading %}Sign in{% endblock %}
{% block subtitle %}
Counts and charts are open on this network. The password guards changes — drawing zones
and lines, and anything else that rewrites this site's configuration.
{% endblock %}
{% block content %}
{% if authenticated %}
You are signed in.
{% else %}
{% if error %}
{# Deliberately the same sentence for a wrong password and for a cooldown: which one it
was is in the log, because telling the caller narrows their next guess. #}