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

Upload login.css

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