webcodelab commited on
Commit
fc21e5c
·
verified ·
1 Parent(s): 6c153c2

Update app/templates/login.html

Browse files
Files changed (1) hide show
  1. app/templates/login.html +1 -333
app/templates/login.html CHANGED
@@ -3,339 +3,7 @@
3
 
4
  {% block extra_head %}
5
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap" rel="stylesheet">
6
- <style>
7
- :root {
8
- --primary: #2563eb;
9
- --primary-light: #60a5fa;
10
- --accent: #14b8a6;
11
- --bg: #f8fafc;
12
- --bg-dark: #18181b;
13
- --text: #1e293b;
14
- --text-light: #f1f5f9;
15
- --card: #fff;
16
- --card-dark: #23272f;
17
- --border: #e5e7eb;
18
- --border-dark: #2d3340;
19
- --transition: 0.3s cubic-bezier(.4,0,.2,1);
20
- }
21
- [data-theme="dark"] {
22
- --bg: var(--bg-dark);
23
- --text: var(--text-light);
24
- --card: var(--card-dark);
25
- --border: var(--border-dark);
26
- }
27
- html, body {
28
- margin: 0;
29
- padding: 0;
30
- font-family: 'Inter', sans-serif;
31
- background: var(--bg);
32
- color: var(--text);
33
- transition: background var(--transition), color var(--transition);
34
- }
35
- a { color: var(--primary); text-decoration: none; transition: color var(--transition); }
36
- a:hover { color: var(--accent); }
37
- .container { max-width: 1100px; margin: 0 auto; padding: 0 1.5rem; }
38
- header {
39
- display: flex; align-items: center; justify-content: space-between;
40
- padding: 2rem 0 1.5rem 0;
41
- }
42
- .logo {
43
- font-weight: 700; font-size: 1.5rem; letter-spacing: -1px;
44
- color: var(--primary);
45
- }
46
- .nav-links {
47
- display: flex; gap: 2rem;
48
- }
49
- .nav-links a { font-weight: 500; }
50
- .theme-toggle {
51
- background: none; border: none; cursor: pointer; font-size: 1.3rem;
52
- color: var(--text); margin-left: 1.5rem; transition: color var(--transition);
53
- }
54
- .sticky-header {
55
- position: sticky;
56
- top: 0;
57
- z-index: 100;
58
- background: var(--bg);
59
- transition: background var(--transition);
60
- box-shadow: 0 2px 8px 0 rgba(30,41,59,0.04);
61
- }
62
- .hamburger {
63
- display: none;
64
- flex-direction: column;
65
- justify-content: center;
66
- align-items: center;
67
- width: 40px;
68
- height: 40px;
69
- background: none;
70
- border: none;
71
- cursor: pointer;
72
- margin-left: 1rem;
73
- z-index: 110;
74
- }
75
- .hamburger span {
76
- display: block;
77
- width: 24px;
78
- height: 3px;
79
- margin: 3px 0;
80
- background: var(--text);
81
- border-radius: 2px;
82
- transition: all 0.3s;
83
- }
84
- @media (max-width: 900px) {
85
- .nav-links {
86
- position: fixed;
87
- top: 70px;
88
- right: 0;
89
- background: var(--card);
90
- flex-direction: column;
91
- align-items: flex-start;
92
- gap: 1.5rem;
93
- padding: 2rem 2rem 2rem 1.5rem;
94
- box-shadow: 0 4px 24px 0 rgba(30,41,59,0.10);
95
- border-radius: 0 0 0.7rem 0.7rem;
96
- transform: translateY(-120%);
97
- opacity: 0;
98
- pointer-events: none;
99
- transition: transform 0.3s, opacity 0.3s;
100
- min-width: 60vw;
101
- }
102
- .nav-links.open {
103
- transform: translateY(0);
104
- opacity: 1;
105
- pointer-events: auto;
106
- }
107
- .hamburger {
108
- display: flex;
109
- }
110
- .logo {
111
- z-index: 120;
112
- }
113
- .theme-toggle {
114
- z-index: 120;
115
- margin-left: 0.5rem;
116
- }
117
- }
118
- @media (max-width: 600px) {
119
- .nav-links {
120
- top: 60px;
121
- padding: 1.2rem 1.2rem 1.2rem 1rem;
122
- min-width: 80vw;
123
- }
124
- }
125
- /* Login Form */
126
- .login-container {
127
- display: flex;
128
- align-items: center;
129
- justify-content: center;
130
- min-height: calc(100vh - 120px);
131
- padding: 2rem 0;
132
- }
133
- .login-card {
134
- background: var(--card);
135
- border: 1px solid var(--border);
136
- border-radius: 1rem;
137
- padding: 2.5rem;
138
- width: 100%;
139
- max-width: 400px;
140
- box-shadow: 0 4px 24px 0 rgba(30,41,59,0.08);
141
- transition: background var(--transition), border var(--transition);
142
- }
143
- .login-header {
144
- text-align: center;
145
- margin-bottom: 2rem;
146
- }
147
- .login-title {
148
- font-size: 1.8rem;
149
- font-weight: 700;
150
- margin-bottom: 0.5rem;
151
- color: var(--text);
152
- }
153
- .login-subtitle {
154
- color: #64748b;
155
- font-size: 1rem;
156
- }
157
- [data-theme="dark"] .login-subtitle {
158
- color: #cbd5e1;
159
- }
160
- .form-group {
161
- margin-bottom: 1.5rem;
162
- }
163
- .form-label {
164
- display: block;
165
- font-weight: 600;
166
- margin-bottom: 0.5rem;
167
- color: var(--text);
168
- font-size: 0.95rem;
169
- }
170
- .form-input {
171
- width: 100%;
172
- padding: 0.75rem 1rem;
173
- border: 1px solid var(--border);
174
- border-radius: 0.5rem;
175
- font-size: 1rem;
176
- font-family: inherit;
177
- background: var(--bg);
178
- color: var(--text);
179
- transition: border var(--transition), background var(--transition), color var(--transition);
180
- box-sizing: border-box;
181
- }
182
- .form-input:focus {
183
- outline: none;
184
- border-color: var(--primary);
185
- box-shadow: 0 0 0 3px rgba(37,99,235,0.1);
186
- }
187
- .form-input::placeholder {
188
- color: #94a3b8;
189
- }
190
- [data-theme="dark"] .form-input::placeholder {
191
- color: #64748b;
192
- }
193
- .form-row {
194
- display: flex;
195
- justify-content: space-between;
196
- align-items: center;
197
- margin-bottom: 1.5rem;
198
- }
199
- .checkbox-group {
200
- display: flex;
201
- align-items: center;
202
- gap: 0.5rem;
203
- }
204
- .checkbox-group input[type="checkbox"] {
205
- width: 16px;
206
- height: 16px;
207
- accent-color: var(--primary);
208
- }
209
- .checkbox-group label {
210
- font-size: 0.9rem;
211
- color: var(--text);
212
- cursor: pointer;
213
- }
214
- .forgot-link {
215
- font-size: 0.9rem;
216
- color: var(--primary);
217
- text-decoration: none;
218
- }
219
- .forgot-link:hover {
220
- color: var(--accent);
221
- }
222
- .login-btn {
223
- width: 100%;
224
- padding: 0.85rem 1.5rem;
225
- background: var(--primary);
226
- color: #fff;
227
- border: none;
228
- border-radius: 0.5rem;
229
- font-size: 1rem;
230
- font-weight: 600;
231
- cursor: pointer;
232
- transition: background var(--transition);
233
- margin-bottom: 1.5rem;
234
- }
235
- .login-btn:hover {
236
- background: var(--accent);
237
- }
238
- .login-btn:disabled {
239
- background: #94a3b8;
240
- cursor: not-allowed;
241
- }
242
- .divider {
243
- display: flex;
244
- align-items: center;
245
- margin: 1.5rem 0;
246
- color: #64748b;
247
- font-size: 0.9rem;
248
- }
249
- [data-theme="dark"] .divider {
250
- color: #94a3b8;
251
- }
252
- .divider::before,
253
- .divider::after {
254
- content: "";
255
- flex: 1;
256
- height: 1px;
257
- background: var(--border);
258
- }
259
- .divider span {
260
- padding: 0 1rem;
261
- }
262
- .social-btn {
263
- width: 100%;
264
- padding: 0.75rem 1rem;
265
- border: 1px solid var(--border);
266
- border-radius: 0.5rem;
267
- background: var(--card);
268
- color: var(--text);
269
- font-size: 1rem;
270
- font-weight: 500;
271
- cursor: pointer;
272
- transition: background var(--transition), border var(--transition);
273
- margin-bottom: 0.75rem;
274
- display: flex;
275
- align-items: center;
276
- justify-content: center;
277
- gap: 0.5rem;
278
- }
279
- .social-btn:hover {
280
- background: var(--bg);
281
- border-color: var(--primary);
282
- }
283
- .signup-link {
284
- text-align: center;
285
- margin-top: 1.5rem;
286
- color: #64748b;
287
- font-size: 0.95rem;
288
- }
289
- [data-theme="dark"] .signup-link {
290
- color: #cbd5e1;
291
- }
292
- .signup-link a {
293
- font-weight: 600;
294
- }
295
- .error-message {
296
- background: #fef2f2;
297
- color: #dc2626;
298
- padding: 0.75rem 1rem;
299
- border-radius: 0.5rem;
300
- font-size: 0.9rem;
301
- margin-bottom: 1rem;
302
- border: 1px solid #fecaca;
303
- }
304
- [data-theme="dark"] .error-message {
305
- background: #450a0a;
306
- color: #fca5a5;
307
- border-color: #7f1d1d;
308
- }
309
- .success-message {
310
- background: #f0fdf4;
311
- color: #16a34a;
312
- padding: 0.75rem 1rem;
313
- border-radius: 0.5rem;
314
- font-size: 0.9rem;
315
- margin-bottom: 1rem;
316
- border: 1px solid #bbf7d0;
317
- }
318
- [data-theme="dark"] .success-message {
319
- background: #052e16;
320
- color: #86efac;
321
- border-color: #166534;
322
- }
323
- .verification-link {
324
- text-align: center;
325
- margin-top: 1rem;
326
- color: #64748b;
327
- font-size: 0.9rem;
328
- }
329
- [data-theme="dark"] .verification-link {
330
- color: #cbd5e1;
331
- }
332
- .verification-link a {
333
- font-weight: 600;
334
- }
335
- @media (max-width: 900px) {
336
- .container { padding: 0 0.5rem; }
337
- }
338
- </style>
339
  {% endblock %}
340
 
341
  {% block content %}
 
3
 
4
  {% block extra_head %}
5
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap" rel="stylesheet">
6
+ <link rel="stylesheet" href="{{ url_for('static', filename='css/login.css') }}">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  {% endblock %}
8
 
9
  {% block content %}