blob: ff587e2ebf3a2b83ec857e17ce1b5ee2702bed93 [file] [log] [blame]
DREW5b1883e2025-06-07 10:41:32 +08001/* personalSubpage.css - 现代化设计 */
2
Akane12173a7bb972025-06-01 01:05:27 +08003/* 上传记录表格样式 */
4.uploads-table {
5 width: 100%;
DREW5b1883e2025-06-07 10:41:32 +08006 border-collapse: separate;
7 border-spacing: 0;
8 margin-top: 25px;
9 background: white;
10 border-radius: 12px;
11 overflow: hidden;
12 box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
Akane12173a7bb972025-06-01 01:05:27 +080013}
Akane121765b61a72025-05-17 13:52:25 +080014
Akane12173a7bb972025-06-01 01:05:27 +080015.uploads-table th, .uploads-table td {
DREW5b1883e2025-06-07 10:41:32 +080016 padding: 15px;
Akane12173a7bb972025-06-01 01:05:27 +080017 text-align: left;
DREW5b1883e2025-06-07 10:41:32 +080018 border-bottom: 1px solid #f0f2f5;
Akane12173a7bb972025-06-01 01:05:27 +080019}
20
21.uploads-table th {
DREW5b1883e2025-06-07 10:41:32 +080022 background-color: #1e3c72;
23 color: white;
Akane12173a7bb972025-06-01 01:05:27 +080024 font-weight: 600;
DREW5b1883e2025-06-07 10:41:32 +080025 text-transform: uppercase;
26 font-size: 14px;
Akane12173a7bb972025-06-01 01:05:27 +080027}
28
DREW5b1883e2025-06-07 10:41:32 +080029.uploads-table tr:last-child td {
30 border-bottom: none;
31}
32
33.uploads-table tr:hover td {
34 background-color: #f9fafc;
Akane12173a7bb972025-06-01 01:05:27 +080035}
36
37/* 操作按钮样式 */
38.action-btn {
DREW5b1883e2025-06-07 10:41:32 +080039 padding: 8px 16px;
Akane12173a7bb972025-06-01 01:05:27 +080040 border: none;
DREW5b1883e2025-06-07 10:41:32 +080041 border-radius: 6px;
Akane12173a7bb972025-06-01 01:05:27 +080042 cursor: pointer;
43 font-size: 14px;
DREW5b1883e2025-06-07 10:41:32 +080044 font-weight: 600;
45 transition: all 0.3s;
46 display: inline-flex;
47 align-items: center;
48 gap: 5px;
Akane12173a7bb972025-06-01 01:05:27 +080049}
50
51.delete-btn {
DREW5b1883e2025-06-07 10:41:32 +080052 background: linear-gradient(135deg, #ff4d4f 0%, #f5222d 100%);
Akane12173a7bb972025-06-01 01:05:27 +080053 color: white;
54}
55
56.delete-btn:hover {
DREW5b1883e2025-06-07 10:41:32 +080057 transform: translateY(-2px);
58 box-shadow: 0 4px 12px rgba(255, 77, 79, 0.3);
Akane12173a7bb972025-06-01 01:05:27 +080059}
60
61/* 分页控件样式 */
62.pagination {
DREW5b1883e2025-06-07 10:41:32 +080063 margin-top: 30px;
Akane12173a7bb972025-06-01 01:05:27 +080064 display: flex;
65 justify-content: center;
66 align-items: center;
DREW5b1883e2025-06-07 10:41:32 +080067 gap: 10px;
Akane12173a7bb972025-06-01 01:05:27 +080068 flex-wrap: wrap;
69}
70
71.page-nav, .page-number {
DREW5b1883e2025-06-07 10:41:32 +080072 padding: 8px 16px;
Akane12173a7bb972025-06-01 01:05:27 +080073 border: 1px solid #d9d9d9;
DREW5b1883e2025-06-07 10:41:32 +080074 background-color: white;
75 color:#333;
76 border-radius: 6px;
Akane12173a7bb972025-06-01 01:05:27 +080077 cursor: pointer;
DREW5b1883e2025-06-07 10:41:32 +080078 min-width: 40px;
Akane12173a7bb972025-06-01 01:05:27 +080079 text-align: center;
DREW5b1883e2025-06-07 10:41:32 +080080 transition: all 0.3s;
81 font-weight: 600;
Akane12173a7bb972025-06-01 01:05:27 +080082}
83
84.page-nav:disabled, .page-number:disabled {
DREW5b1883e2025-06-07 10:41:32 +080085 color: #070202;
Akane12173a7bb972025-06-01 01:05:27 +080086 cursor: not-allowed;
87}
88
89.page-nav:not(:disabled):hover,
90.page-number:not(:disabled):hover {
DREW5b1883e2025-06-07 10:41:32 +080091 border-color: #1e3c72;
92 color: #1e3c72;
93 transform: translateY(-2px);
Akane12173a7bb972025-06-01 01:05:27 +080094}
95
96.page-number.active {
DREW5b1883e2025-06-07 10:41:32 +080097 background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
Akane12173a7bb972025-06-01 01:05:27 +080098 color: white;
DREW5b1883e2025-06-07 10:41:32 +080099 border-color: #1e3c72;
Akane12173a7bb972025-06-01 01:05:27 +0800100}
101
102.ellipsis {
DREW5b1883e2025-06-07 10:41:32 +0800103 padding: 0 12px;
Akane12173a7bb972025-06-01 01:05:27 +0800104}
105
106.page-info {
107 display: flex;
108 align-items: center;
DREW5b1883e2025-06-07 10:41:32 +0800109 gap: 10px;
110 margin-left: 20px;
Akane12173a7bb972025-06-01 01:05:27 +0800111}
112
113.page-info input {
DREW5b1883e2025-06-07 10:41:32 +0800114 width: 60px;
115 padding: 8px;
Akane12173a7bb972025-06-01 01:05:27 +0800116 border: 1px solid #d9d9d9;
DREW5b1883e2025-06-07 10:41:32 +0800117 border-radius: 6px;
Akane12173a7bb972025-06-01 01:05:27 +0800118 text-align: center;
DREW5b1883e2025-06-07 10:41:32 +0800119 font-weight: 600;
Akane12173a7bb972025-06-01 01:05:27 +0800120}
121
122.page-info input:focus {
123 outline: none;
DREW5b1883e2025-06-07 10:41:32 +0800124 border-color: #1e3c72;
125 box-shadow: 0 0 0 3px rgba(30, 60, 114, 0.2);
Akane12173a7bb972025-06-01 01:05:27 +0800126}
127
128/* 兑换区样式 */
129.exchange-section {
DREW5b1883e2025-06-07 10:41:32 +0800130 margin-top: 30px;
131 padding: 25px;
132 background: white;
133 border-radius: 12px;
134 box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
Akane12173a7bb972025-06-01 01:05:27 +0800135}
136
137.exchange-card {
DREW5b1883e2025-06-07 10:41:32 +0800138 margin-bottom: 25px;
139 padding: 20px;
140 background: #f9fafc;
141 border-radius: 10px;
142 border: 1px solid #f0f2f5;
143 transition: all 0.3s;
144}
145
146.exchange-card:hover {
147 transform: translateY(-3px);
148 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
Akane12173a7bb972025-06-01 01:05:27 +0800149}
150
151.exchange-card h4 {
152 margin-top: 0;
DREW5b1883e2025-06-07 10:41:32 +0800153 color: #1e3c72;
154 font-size: 18px;
Akane12173a7bb972025-06-01 01:05:27 +0800155}
156
157.exchange-card p {
158 color: #666;
DREW5b1883e2025-06-07 10:41:32 +0800159 margin-bottom: 20px;
160 font-size: 15px;
Akane12173a7bb972025-06-01 01:05:27 +0800161}
162
163.exchange-btn {
DREW5b1883e2025-06-07 10:41:32 +0800164 padding: 10px 20px;
165 background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
Akane12173a7bb972025-06-01 01:05:27 +0800166 color: white;
167 border: none;
DREW5b1883e2025-06-07 10:41:32 +0800168 border-radius: 6px;
Akane12173a7bb972025-06-01 01:05:27 +0800169 cursor: pointer;
DREW5b1883e2025-06-07 10:41:32 +0800170 font-weight: 600;
171 transition: all 0.3s;
172 display: inline-flex;
173 align-items: center;
174 gap: 8px;
Akane12173a7bb972025-06-01 01:05:27 +0800175}
176
177.exchange-btn:hover {
DREW5b1883e2025-06-07 10:41:32 +0800178 transform: translateY(-2px);
179 box-shadow: 0 4px 12px rgba(30, 60, 114, 0.3);
Akane12173a7bb972025-06-01 01:05:27 +0800180}
181
182.exchange-btn:disabled {
DREW5b1883e2025-06-07 10:41:32 +0800183 background: #d9d9d9;
Akane12173a7bb972025-06-01 01:05:27 +0800184 cursor: not-allowed;
DREW5b1883e2025-06-07 10:41:32 +0800185 transform: none;
186 box-shadow: none;
Akane12173a7bb972025-06-01 01:05:27 +0800187}
188
189.exchange-input-group {
190 display: flex;
DREW5b1883e2025-06-07 10:41:32 +0800191 gap: 15px;
192 margin-top: 15px;
Akane12173a7bb972025-06-01 01:05:27 +0800193}
194
195.exchange-input-group input {
196 flex: 1;
DREW5b1883e2025-06-07 10:41:32 +0800197 padding: 10px;
Akane12173a7bb972025-06-01 01:05:27 +0800198 border: 1px solid #d9d9d9;
DREW5b1883e2025-06-07 10:41:32 +0800199 border-radius: 6px;
200 font-size: 15px;
201}
202
203.exchange-input-group input:focus {
204 outline: none;
205 border-color: #1e3c72;
206 box-shadow: 0 0 0 3px rgba(30, 60, 114, 0.2);
Akane12173a7bb972025-06-01 01:05:27 +0800207}
208
209.invite-code-list {
DREW5b1883e2025-06-07 10:41:32 +0800210 margin-top: 25px;
Akane12173a7bb972025-06-01 01:05:27 +0800211}
212
213.invite-code-list ul {
214 list-style: none;
215 padding: 0;
DREW5b1883e2025-06-07 10:41:32 +0800216 margin: 0;
Akane12173a7bb972025-06-01 01:05:27 +0800217}
218
219.invite-code-list li {
220 display: flex;
221 justify-content: space-between;
DREW5b1883e2025-06-07 10:41:32 +0800222 align-items: center;
223 padding: 15px;
224 border-bottom: 1px solid #f0f2f5;
225 transition: all 0.3s;
226}
227
228.invite-code-list li:hover {
229 background-color: #f9fafc;
Akane12173a7bb972025-06-01 01:05:27 +0800230}
231
232.invite-code-list .code {
233 font-family: monospace;
DREW5b1883e2025-06-07 10:41:32 +0800234 font-size: 16px;
235 color: #1e3c72;
Akane12173a7bb972025-06-01 01:05:27 +0800236}
237
238.invite-code-list .status {
DREW5b1883e2025-06-07 10:41:32 +0800239 padding: 4px 12px;
240 border-radius: 20px;
241 font-size: 13px;
242 font-weight: 600;
Akane12173a7bb972025-06-01 01:05:27 +0800243}
244
245.invite-code-list .status.available {
DREW5b1883e2025-06-07 10:41:32 +0800246 background: linear-gradient(135deg, #52c41a 0%, #a0d911 100%);
247 color: white;
Akane12173a7bb972025-06-01 01:05:27 +0800248}
249
250.invite-code-list .status.used {
DREW5b1883e2025-06-07 10:41:32 +0800251 background: linear-gradient(135deg, #ff4d4f 0%, #f5222d 100%);
252 color: white;
253}
254
255/* 设置页面样式 */
256.setting-section {
257 max-width: 800px;
258 margin: 0 auto;
259 padding: 25px;
260 background: white;
261 border-radius: 12px;
262 box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
263}
264
265.user-info-card, .password-form-card {
266 background: #f9fafc;
267 border-radius: 10px;
268 padding: 25px;
269 margin-bottom: 25px;
270 border: 1px solid #f0f2f5;
271}
272
273.info-item {
274 display: flex;
275 margin-bottom: 15px;
276 align-items: center;
277}
278
279.info-item label {
280 font-weight: 600;
281 width: 150px;
282 color: #1e3c72;
283}
284
285.info-item span {
286 flex: 1;
287 color: #333;
288}
289
290.info-note {
291 color: #666;
292 font-size: 14px;
293 margin-top: 15px;
294 line-height: 1.6;
295}
296
297.form-group {
298 margin-bottom: 20px;
299}
300
301.form-group label {
302 display: block;
303 margin-bottom: 8px;
304 font-weight: 600;
305 color: #1e3c72;
306}
307
308.form-group input {
309 width: 100%;
310 padding: 12px;
311 border: 1px solid #d9d9d9;
312 border-radius: 6px;
313 box-sizing: border-box;
314 font-size: 15px;
315 transition: all 0.3s;
316}
317
318.form-group input:focus {
319 outline: none;
320 border-color: #1e3c72;
321 box-shadow: 0 0 0 3px rgba(30, 60, 114, 0.2);
322}
323
324.submit-button {
325 padding: 12px 24px;
326 background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
327 color: white;
328 border: none;
329 border-radius: 6px;
330 cursor: pointer;
331 font-size: 16px;
332 font-weight: 600;
333 transition: all 0.3s;
334}
335
336.submit-button:hover {
337 transform: translateY(-2px);
338 box-shadow: 0 4px 12px rgba(30, 60, 114, 0.3);
339}
340
341.submit-button:disabled {
342 background: #d9d9d9;
343 cursor: not-allowed;
344 transform: none;
345 box-shadow: none;
346}
347
348.error-message {
349 color: #ff4d4f;
350 margin-bottom: 20px;
351 padding: 10px;
352 background: #fff2f0;
353 border-radius: 6px;
354 border: 1px solid #ffccc7;
355}
356
357.success-message {
358 color: #52c41a;
359 margin-bottom: 20px;
360 padding: 10px;
361 background: #f6ffed;
362 border-radius: 6px;
363 border: 1px solid #b7eb8f;
364}
365
366.subpage-container {
367 max-width: 800px;
368 margin: 0 auto;
369 padding: 25px;
370 animation: fadeIn 0.5s ease-out forwards;
371}
372
373.back-button {
374 display: inline-flex;
375 align-items: center;
376 gap: 8px;
377 padding: 8px 16px;
378 background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
379 color: white;
380 border: none;
381 border-radius: 6px;
382 font-weight: 600;
383 cursor: pointer;
384 transition: all 0.3s;
385 margin-bottom: 30px;
386 box-shadow: 0 2px 8px rgba(30, 60, 114, 0.2);
387}
388
389.back-button:hover {
390 transform: translateY(-2px);
391 box-shadow: 0 4px 12px rgba(30, 60, 114, 0.3);
392}
393
394.back-button::before {
395 content: "←";
396}
397
398.page-title {
399 font-size: 24px;
400 margin: 0 0 25px;
401 background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
402 -webkit-background-clip: text;
403 -webkit-text-fill-color: transparent;
404 font-weight: 800;
405 padding-bottom: 10px;
406 border-bottom: 2px solid #f0f2f5;
407}
408
409.loading-message, .error-message {
410 padding: 15px;
411 border-radius: 8px;
412 margin-bottom: 20px;
413 text-align: center;
414}
415
416.loading-message {
417 background-color: #f5f5f5;
418 color: #666;
419}
420
421.error-message {
Akane12173a7bb972025-06-01 01:05:27 +0800422 background-color: #fff2f0;
423 color: #ff4d4f;
424 border: 1px solid #ffccc7;
425}
426
DREW5b1883e2025-06-07 10:41:32 +0800427.notice-list {
428 background: white;
429 border-radius: 12px;
430 box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
431 overflow: hidden;
Akane12173a7bb972025-06-01 01:05:27 +0800432}
433
DREW5b1883e2025-06-07 10:41:32 +0800434.empty-notice {
435 text-align: center;
436 padding: 50px 20px;
Akane12173a7bb972025-06-01 01:05:27 +0800437 color: #666;
Akane12173a7bb972025-06-01 01:05:27 +0800438 font-size: 16px;
439}
440
DREW5b1883e2025-06-07 10:41:32 +0800441.list-item {
442 padding: 20px;
443 border-bottom: 1px solid #f0f2f5;
444 transition: all 0.3s;
445 cursor: pointer;
Akane12173a7bb972025-06-01 01:05:27 +0800446}
447
DREW5b1883e2025-06-07 10:41:32 +0800448.list-item:last-child {
449 border-bottom: none;
Akane12173a7bb972025-06-01 01:05:27 +0800450}
451
DREW5b1883e2025-06-07 10:41:32 +0800452.list-item:hover {
453 background-color: #f9fafc;
454 transform: translateX(5px);
Akane12173a7bb972025-06-01 01:05:27 +0800455}
456
DREW5b1883e2025-06-07 10:41:32 +0800457.list-item.unread {
458 background-color: #f0f7ff;
459}
460
461.notice-header {
462 display: flex;
463 justify-content: space-between;
464 align-items: center;
465 margin-bottom: 10px;
466}
467
468.notice-header h3 {
469 margin: 0;
470 font-size: 18px;
471 color: #1e3c72;
472 font-weight: 600;
473}
474
475.notice-date {
476 font-size: 14px;
477 color: #888;
478 display: flex;
479 align-items: center;
480 gap: 8px;
481}
482
483.unread-badge {
484 background: #ff4d4f;
485 color: white;
486 font-size: 12px;
487 padding: 2px 8px;
488 border-radius: 10px;
489 font-weight: 500;
490}
491
492.notice-content {
493 margin: 0;
494 color: #333;
495 line-height: 1.6;
496 font-size: 15px;
497}
498
499/* 动画效果 */
500@keyframes fadeIn {
501 from { opacity: 0; transform: translateY(10px); }
502 to { opacity: 1; transform: translateY(0); }
503}
504
505/* 响应式设计 */
506@media (max-width: 768px) {
507
508}
509
510/* 响应式设计 */
511@media (max-width: 768px) {
512 .uploads-table {
513 display: block;
514 overflow-x: auto;
515 }
516
517 .exchange-input-group {
518 flex-direction: column;
519 }
520
521 .info-item {
522 flex-direction: column;
523 align-items: flex-start;
524 }
525
526 .info-item label {
527 width: 100%;
528 margin-bottom: 5px;
529 }
530
531 .pagination {
532 flex-direction: column;
533 align-items: center;
534 }
535
536 .page-info {
537 margin-left: 0;
538 margin-top: 15px;
539 }
540 .subpage-container {
541 padding: 15px;
542 }
543
544 .notice-header {
545 flex-direction: column;
546 align-items: flex-start;
547 gap: 5px;
548 }
549
550 .list-item:hover {
551 transform: none;
552 }
Akane12173a7bb972025-06-01 01:05:27 +0800553}