blob: 3da371c3654714e5342bdbdec66fe54f23c8c255 [file] [log] [blame]
wht30587822025-06-09 23:33:09 +08001/* AdminPage 特定样式 - 翡翠园林风格 */
2@import './SharedStyles.css';
3
4/* 管理员页面容器 */
5.admin-page-container {
6 min-height: 100vh;
7 background: linear-gradient(135deg, #2d5016 0%, #4a7c59 20%, #8fbc8f 40%, #98fb98 60%, #f0fff0 100%);
8 position: relative;
9 font-family: 'Lora', serif;
10 overflow-x: hidden;
11}
12
13/* 背景装饰元素 */
14.admin-page-container::before {
15 content: '';
16 position: fixed;
17 top: 0;
18 left: 0;
19 right: 0;
20 bottom: 0;
21 background:
22 radial-gradient(circle at 20% 80%, rgba(255, 255, 255, 0.08) 0%, transparent 50%),
23 radial-gradient(circle at 80% 20%, rgba(255, 255, 255, 0.06) 0%, transparent 50%),
24 radial-gradient(circle at 40% 40%, rgba(144, 238, 144, 0.08) 0%, transparent 50%);
25 animation: backgroundShift 25s ease-in-out infinite;
26 pointer-events: none;
27 z-index: 0;
28}
29
30/* 主内容区域 */
31.admin-main-content {
32 position: relative;
33 z-index: 10;
34 padding: 20px;
35 max-width: 1200px;
36 margin: 0 auto;
37}
38
39/* 页面标题 */
40.admin-title {
41 text-align: center;
42 margin: 30px 0 40px 0;
43 color: #fff;
44 font-family: 'Playfair Display', serif;
45 font-size: 3rem;
46 font-weight: 700;
47 text-shadow:
48 0 4px 12px rgba(45, 80, 22, 0.4),
49 0 2px 8px rgba(0, 0, 0, 0.3);
50 letter-spacing: 2px;
51 position: relative;
52}
53
54.admin-title::after {
55 content: '';
56 position: absolute;
57 bottom: -15px;
58 left: 50%;
59 transform: translateX(-50%);
60 width: 120px;
61 height: 4px;
62 background: linear-gradient(90deg, transparent, #90ee90, transparent);
63 border-radius: 2px;
64 box-shadow: 0 0 15px rgba(144, 238, 144, 0.6);
65}
66
67/* 系统参数卡片 */
68.admin-config-card {
69 background: rgba(255, 255, 255, 0.95);
70 backdrop-filter: blur(20px);
71 border-radius: 25px;
72 padding: 25px 35px;
73 margin-bottom: 40px;
74 box-shadow:
75 0 20px 60px rgba(45, 80, 22, 0.12),
76 0 8px 25px rgba(144, 238, 144, 0.08),
77 inset 0 1px 0 rgba(255, 255, 255, 0.9);
78 border: 2px solid rgba(144, 238, 144, 0.2);
79 position: relative;
80 overflow: hidden;
81 display: flex;
82 gap: 30px;
83 align-items: center;
84 justify-content: space-between;
85 flex-wrap: wrap;
86}
87
88.admin-config-card::before {
89 content: '';
90 position: absolute;
91 top: -2px;
92 left: -2px;
93 right: -2px;
94 bottom: -2px;
95 background: linear-gradient(45deg,
96 #90ee90 0%,
97 #98fb98 25%,
98 #f0fff0 50%,
99 #98fb98 75%,
100 #90ee90 100%);
101 border-radius: 27px;
102 z-index: -1;
103 animation: borderGlow 4s ease-in-out infinite;
104}
105
106.admin-config-label {
107 font-weight: 700;
108 color: #2d5016;
109 font-size: 18px;
110 letter-spacing: 1px;
111}
112
113.admin-config-item {
114 color: #4a7c59;
115 font-weight: 600;
116 font-size: 16px;
117 padding: 8px 16px;
118 background: rgba(144, 238, 144, 0.1);
119 border-radius: 12px;
120 border: 1px solid rgba(144, 238, 144, 0.3);
121 transition: all 0.3s ease;
122}
123
124.admin-config-item:hover {
125 background: rgba(144, 238, 144, 0.2);
126 transform: translateY(-2px);
127 box-shadow: 0 4px 12px rgba(144, 238, 144, 0.3);
128}
129
130/* 用户列表区域 */
131.admin-section {
132 margin-bottom: 40px;
133}
134
135.admin-section-title {
136 color: #fff;
137 font-family: 'Playfair Display', serif;
138 font-size: 2rem;
139 font-weight: 600;
140 margin-bottom: 20px;
141 text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
142 letter-spacing: 1px;
143}
144
145.admin-section-title.cheat {
146 color: #ffcdd2;
147}
148
149.admin-section-title.suspicious {
150 color: #fff3e0;
151}
152
153/* 表格容器 - 使用与HomePage一致的样式 */
154.admin-table-container {
155 background: rgba(255, 255, 255, 0.95);
156 backdrop-filter: blur(20px);
157 border-radius: 25px;
158 padding: 0;
159 margin: 30px 0;
160 box-shadow:
161 0 20px 60px rgba(45, 80, 22, 0.12),
162 0 8px 25px rgba(144, 238, 144, 0.08),
163 inset 0 1px 0 rgba(255, 255, 255, 0.9);
164 border: 2px solid rgba(144, 238, 144, 0.2);
165 position: relative;
166 overflow: hidden;
167}
168
169.admin-table-container::before {
170 content: '';
171 position: absolute;
172 top: -2px;
173 left: -2px;
174 right: -2px;
175 bottom: -2px;
176 background: linear-gradient(45deg,
177 #90ee90 0%,
178 #98fb98 25%,
179 #f0fff0 50%,
180 #98fb98 75%,
181 #90ee90 100%);
182 border-radius: 27px;
183 z-index: -1;
184 animation: borderGlow 4s ease-in-out infinite;
185}
186
187/* 表格样式 */
188.admin-table {
189 width: 100%;
190 border-collapse: collapse;
191 font-family: 'Lora', serif;
192 background: transparent;
193}
194
195.admin-table thead {
196 background: linear-gradient(135deg, #2d5016 0%, #4a7c59 100%);
197}
198
199.admin-table th {
200 padding: 18px 24px;
201 text-align: left;
202 color: white;
203 font-weight: 600;
204 font-size: 16px;
205 letter-spacing: 1px;
206 border-bottom: 3px solid #90ee90;
207 position: relative;
208}
209
210.admin-table th:first-child {
211 border-radius: 23px 0 0 0;
212}
213
214.admin-table th:last-child {
215 border-radius: 0 23px 0 0;
216}
217
218.admin-table tbody tr {
219 transition: all 0.3s ease;
220 border-bottom: 1px solid rgba(144, 238, 144, 0.2);
221}
222
223.admin-table tbody tr:hover {
224 background: rgba(144, 238, 144, 0.1);
225 transform: translateX(5px);
226 box-shadow: 0 4px 15px rgba(144, 238, 144, 0.15);
227}
228
229.admin-table tbody tr:last-child:hover td:first-child {
230 border-radius: 0 0 0 23px;
231}
232
233.admin-table tbody tr:last-child:hover td:last-child {
234 border-radius: 0 0 23px 0;
235}
236
237.admin-table td {
238 padding: 16px 24px;
239 color: #2d5016;
240 font-size: 15px;
241 vertical-align: middle;
242 transition: all 0.3s ease;
243}
244
245.admin-table tbody tr:hover td {
246 color: #1a5c1a;
247}
248
249/* 状态文本样式 */
250.status-banned {
251 color: #e53935 !important;
252 font-weight: 600;
253}
254
255.status-normal {
256 color: #43a047 !important;
257 font-weight: 600;
258}
259
260.status-warning {
261 color: #ff9800 !important;
262 font-weight: 600;
263}
264
265/* 按钮样式 */
266.admin-btn {
267 border: none;
268 border-radius: 12px;
269 padding: 8px 18px;
270 font-weight: 600;
271 font-size: 14px;
272 cursor: pointer;
273 transition: all 0.3s ease;
274 font-family: 'Lora', serif;
275 letter-spacing: 0.5px;
276 position: relative;
277 overflow: hidden;
278}
279
280.admin-btn::before {
281 content: '';
282 position: absolute;
283 top: 50%;
284 left: 50%;
285 width: 0;
286 height: 0;
287 background: rgba(255, 255, 255, 0.2);
288 border-radius: 50%;
289 transition: all 0.3s ease;
290 transform: translate(-50%, -50%);
291}
292
293.admin-btn:hover::before {
294 width: 100px;
295 height: 100px;
296}
297
298.admin-btn:hover {
299 transform: translateY(-3px);
300 box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
301}
302
303.admin-btn-unban {
304 background: linear-gradient(135deg, #13F31E, #43a047);
305 color: white;
306}
307
308.admin-btn-ban {
309 background: linear-gradient(135deg, #e53935, #c62828);
310 color: white;
311}
312
313/* 导航按钮区域 */
314.admin-nav-buttons {
315 display: flex;
316 gap: 30px;
317 justify-content: center;
318 margin-top: 50px;
319 flex-wrap: wrap;
320}
321
322.admin-nav-btn {
323 background: linear-gradient(135deg, #2d5016 0%, #4a7c59 100%);
324 color: white;
325 border: none;
326 border-radius: 15px;
327 padding: 15px 35px;
328 font-weight: 600;
329 font-size: 16px;
330 cursor: pointer;
331 transition: all 0.3s ease;
332 font-family: 'Lora', serif;
333 letter-spacing: 1px;
334 position: relative;
335 overflow: hidden;
336 box-shadow: 0 8px 25px rgba(45, 80, 22, 0.3);
337}
338
339.admin-nav-btn::before {
340 content: '';
341 position: absolute;
342 top: 50%;
343 left: 50%;
344 width: 0;
345 height: 0;
346 background: rgba(144, 238, 144, 0.3);
347 border-radius: 50%;
348 transition: all 0.3s ease;
349 transform: translate(-50%, -50%);
350}
351
352.admin-nav-btn:hover::before {
353 width: 200px;
354 height: 200px;
355}
356
357.admin-nav-btn:hover {
358 transform: translateY(-5px);
359 box-shadow: 0 15px 40px rgba(45, 80, 22, 0.4);
360}
361
362.admin-nav-btn.appeal {
363 background: linear-gradient(135deg, #1976d2, #1565c0);
364}
365
366.admin-nav-btn.migration {
367 background: linear-gradient(135deg, #43a047, #388e3c);
368}
369
370.admin-nav-btn.promotion {
371 background: linear-gradient(135deg, #ff9800, #f57c00);
372}
373
374/* 动画效果 */
375@keyframes backgroundShift {
376 0%, 100% { transform: scale(1) rotate(0deg); }
377 50% { transform: scale(1.1) rotate(1deg); }
378}
379
380@keyframes borderGlow {
381 0%, 100% { opacity: 0.6; }
382 50% { opacity: 1; }
383}
384
385/* 响应式设计 */
386@media (max-width: 768px) {
387 .admin-main-content {
388 padding: 0 15px;
389 }
390
391 .admin-title {
392 font-size: 2.2rem;
393 }
394
395 .admin-config-card {
396 padding: 20px 25px;
397 gap: 20px;
398 flex-direction: column;
399 align-items: flex-start;
400 }
401
402 .admin-table-container {
403 margin: 20px 0;
404 border-radius: 20px;
405 }
406
407 .admin-table th,
408 .admin-table td {
409 padding: 12px 16px;
410 font-size: 14px;
411 }
412
413 .admin-nav-buttons {
414 gap: 20px;
415 }
416
417 .admin-nav-btn {
418 padding: 12px 28px;
419 font-size: 15px;
420 }
421}
422
423@media (max-width: 480px) {
424 .admin-title {
425 font-size: 1.8rem;
426 }
427
428 .admin-config-card {
429 padding: 15px 20px;
430 }
431
432 .admin-table th,
433 .admin-table td {
434 padding: 10px 12px;
435 font-size: 13px;
436 }
437
438 .admin-nav-buttons {
439 flex-direction: column;
440 align-items: center;
441 }
442
443 .admin-nav-btn {
444 width: 100%;
445 max-width: 300px;
446 }
447}