114 lines
3.0 KiB
HTML
114 lines
3.0 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>Login – OSM Import Tools</title>
|
||
<style>
|
||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||
|
||
body {
|
||
height: 100vh;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
background: #0f0f1a;
|
||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
||
}
|
||
|
||
.login-box {
|
||
background: #1a1a2e;
|
||
border-radius: 10px;
|
||
padding: 36px 32px;
|
||
width: 320px;
|
||
box-shadow: 0 8px 32px rgba(0,0,0,0.4);
|
||
}
|
||
|
||
.login-box h1 {
|
||
font-size: 18px;
|
||
font-weight: 700;
|
||
color: #fff;
|
||
margin-bottom: 6px;
|
||
}
|
||
|
||
.login-box .subtitle {
|
||
font-size: 12px;
|
||
color: #666;
|
||
margin-bottom: 28px;
|
||
}
|
||
|
||
.error-msg {
|
||
background: #3a1e1e;
|
||
color: #e07070;
|
||
border-radius: 5px;
|
||
padding: 8px 12px;
|
||
font-size: 13px;
|
||
margin-bottom: 16px;
|
||
}
|
||
|
||
label {
|
||
display: block;
|
||
font-size: 11px;
|
||
font-weight: 600;
|
||
color: #888;
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.5px;
|
||
margin-bottom: 5px;
|
||
}
|
||
|
||
input[type="text"],
|
||
input[type="password"] {
|
||
width: 100%;
|
||
padding: 9px 12px;
|
||
border: 1px solid #333;
|
||
border-radius: 5px;
|
||
background: #0f0f1a;
|
||
color: #ddd;
|
||
font-size: 14px;
|
||
margin-bottom: 16px;
|
||
outline: none;
|
||
transition: border-color 0.15s;
|
||
}
|
||
|
||
input[type="text"]:focus,
|
||
input[type="password"]:focus {
|
||
border-color: #6f42c1;
|
||
}
|
||
|
||
button[type="submit"] {
|
||
width: 100%;
|
||
padding: 10px;
|
||
background: #6f42c1;
|
||
color: white;
|
||
border: none;
|
||
border-radius: 5px;
|
||
font-size: 14px;
|
||
font-weight: 600;
|
||
cursor: pointer;
|
||
transition: background 0.15s;
|
||
}
|
||
|
||
button[type="submit"]:hover { background: #5a32a3; }
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<div class="login-box">
|
||
<h1>OSM Import Tools</h1>
|
||
<div class="subtitle">Sign in to continue</div>
|
||
|
||
{% if error %}
|
||
<div class="error-msg">{{ error }}</div>
|
||
{% endif %}
|
||
|
||
<form method="POST" action="/login">
|
||
<input type="hidden" name="next" value="{{ next }}">
|
||
<label for="username">Username</label>
|
||
<input type="text" id="username" name="username" autofocus autocomplete="username" required>
|
||
<label for="password">Password</label>
|
||
<input type="password" id="password" name="password" autocomplete="current-password" required>
|
||
<button type="submit">Log in</button>
|
||
</form>
|
||
</div>
|
||
</body>
|
||
</html>
|