43 lines
2.7 KiB
HTML
43 lines
2.7 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>Admin login · CM4 Provisioning</title>
|
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link href="https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&display=swap" rel="stylesheet">
|
|
<style>
|
|
:root { --bg: #0a0e14; --bg-card: #151a24; --accent: #00d4aa; --text: #e6e8eb; --text-dim: #8b949e; --border: #2d333b; --danger: #f87171; --radius: 10px; }
|
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
body { font-family: 'Outfit', sans-serif; background: var(--bg); color: var(--text); min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 1rem; }
|
|
.box { width: 100%; max-width: 360px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 2rem; }
|
|
h1 { font-size: 1.25rem; margin-bottom: 0.5rem; }
|
|
p.sub { font-size: 0.9rem; color: var(--text-dim); margin-bottom: 1.5rem; }
|
|
.err { font-size: 0.85rem; color: var(--danger); margin-bottom: 1rem; }
|
|
label { display: block; font-size: 0.85rem; font-weight: 500; margin-bottom: 0.35rem; color: var(--text-dim); }
|
|
input[type="text"], input[type="password"] { width: 100%; padding: 0.6rem 0.75rem; font: inherit; background: var(--bg); border: 1px solid var(--border); border-radius: 6px; color: var(--text); margin-bottom: 1rem; }
|
|
input:focus { outline: none; border-color: var(--accent); }
|
|
button { width: 100%; padding: 0.65rem; font: inherit; font-weight: 600; background: var(--accent); color: var(--bg); border: none; border-radius: 6px; cursor: pointer; }
|
|
button:hover { background: #00b894; }
|
|
a.back { display: inline-block; margin-top: 1rem; font-size: 0.9rem; color: var(--text-dim); text-decoration: none; }
|
|
a.back:hover { color: var(--accent); }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="box">
|
|
<h1>Admin login</h1>
|
|
<p class="sub">CM4 eMMC provisioning dashboard</p>
|
|
{% if error %}<p class="err">{{ error }}</p>{% endif %}
|
|
<form method="post" action="{{ url_for('login') }}">
|
|
<label for="username">Username</label>
|
|
<input type="text" id="username" name="username" required autofocus autocomplete="username" value="{{ request.form.username or '' }}">
|
|
<label for="password">Password</label>
|
|
<input type="password" id="password" name="password" required autocomplete="current-password">
|
|
<button type="submit">Log in</button>
|
|
</form>
|
|
<a href="{{ url_for('index') }}" class="back">← Back to deploy</a>
|
|
</div>
|
|
</body>
|
|
</html>
|