blob: 69006d244438cbd2d3a8f3d2338a16af56b070af [file] [log] [blame]
DREW5b1883e2025-06-07 10:41:32 +08001/* Personal.css - 现代化设计 */
Akane121765b61a72025-05-17 13:52:25 +08002.personal-container {
DREW5b1883e2025-06-07 10:41:32 +08003 max-width: 1000px;
4 margin: 0 auto;
5 padding: 25px;
6 font-family: 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
7 animation: fadeIn 0.5s ease-out forwards;
Akane12173a7bb972025-06-01 01:05:27 +08008}
9
DREW5b1883e2025-06-07 10:41:32 +080010/* 返回按钮 - 渐变风格 */
11.back-button {
12 display: inline-flex;
13 align-items: center;
14 gap: 8px;
15 padding: 8px 16px;
16 background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
17 color: white;
18 border: none;
19 border-radius: 6px;
20 font-weight: 600;
21 cursor: pointer;
22 transition: all 0.3s;
23 margin-bottom: 30px;
24 box-shadow: 0 2px 8px rgba(30, 60, 114, 0.2);
Akane12173a7bb972025-06-01 01:05:27 +080025}
26
DREW5b1883e2025-06-07 10:41:32 +080027.back-button:hover {
28 transform: translateY(-2px);
29 box-shadow: 0 4px 12px rgba(30, 60, 114, 0.3);
Akane12173a7bb972025-06-01 01:05:27 +080030}
31
DREW5b1883e2025-06-07 10:41:32 +080032.back-button::before {
33 content: "←";
Akane12173a7bb972025-06-01 01:05:27 +080034}
35
DREW5b1883e2025-06-07 10:41:32 +080036/* 用户资料卡片 - 3D效果 */
37.profile-card {
38 background: white;
39 border-radius: 12px;
40 padding: 25px;
41 margin-bottom: 25px;
42 box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
43 transition: transform 0.3s, box-shadow 0.3s;
44 position: relative;
Akane12173a7bb972025-06-01 01:05:27 +080045 overflow: hidden;
46}
47
DREW5b1883e2025-06-07 10:41:32 +080048.profile-card:hover {
49 transform: translateY(-5px);
50 box-shadow: 0 12px 25px rgba(0, 0, 0, 0.12);
Akane12173a7bb972025-06-01 01:05:27 +080051}
52
DREW5b1883e2025-06-07 10:41:32 +080053.profile-header {
54 display: flex;
55 align-items: center;
56 margin-bottom: 25px;
57}
58
59.profile-avatar {
60 width: 100px;
61 height: 100px;
62 border-radius: 50%;
63 margin-right: 25px;
64 object-fit: cover;
65 border: 4px solid rgba(30, 60, 114, 0.1);
66 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
67 transition: transform 0.3s;
68}
69
70.profile-avatar:hover {
71 transform: scale(1.05);
72}
73
74.username {
75 font-size: 28px;
76 margin: 0 0 10px;
77 background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
78 -webkit-background-clip: text;
79 -webkit-text-fill-color: transparent;
80 font-weight: 800;
81}
82
83.user-meta {
84 display: flex;
85 gap: 20px;
86}
Akane12173a7bb972025-06-01 01:05:27 +080087
88.user-meta span {
DREW5b1883e2025-06-07 10:41:32 +080089 display: flex;
90 align-items: center;
91 gap: 5px;
92 font-size: 15px;
Akane12173a7bb972025-06-01 01:05:27 +080093 color: #666;
94}
95
96.user-meta span:last-child {
97 color: #ff9800;
98 font-weight: bold;
99}
DREW5b1883e2025-06-07 10:41:32 +0800100
101/* 统计数据网格 - 卡片式设计 */
102.stats-grid {
103 display: grid;
104 grid-template-columns: repeat(4, 1fr);
105 gap: 20px;
106}
107
108.stat-item {
109 background: linear-gradient(135deg, #f5f7fa 0%, #e4e8f0 100%);
110 border-radius: 10px;
111 padding: 20px;
112 text-align: center;
113 transition: transform 0.3s;
114 box-shadow: 0 4px 8px rgba(0, 0, 0, 0.05);
115}
116
117.stat-item:hover {
118 transform: translateY(-3px);
119 box-shadow: 0 6px 12px rgba(0, 0, 0, 0.1);
120}
121
122.stat-label {
123 font-size: 15px;
124 color: #666;
125 margin-bottom: 10px;
126}
127
128.stat-value {
129 font-size: 22px;
130 font-weight: 700;
131 color: #1e3c72;
132}
133
134/* 下载额度卡片 - 渐变色 */
135.quota-card {
136 background: white;
137 border-radius: 12px;
138 padding: 25px;
139 margin-bottom: 25px;
140 box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
141}
142
143.quota-card h3 {
144 margin-top: 0;
145 margin-bottom: 20px;
146 color: #1e3c72;
147 font-size: 20px;
148}
149
150.quota-info {
151 display: flex;
152 justify-content: space-between;
153 margin-bottom: 15px;
154 font-size: 15px;
155}
156
157.quota-used {
158 color: #ff4d4f;
159 font-weight: 600;
160}
161
162.quota-remaining {
163 color: #52c41a;
164 font-weight: 600;
165}
166
167.progress-bar {
168 height: 12px;
169 background: #f0f2f5;
170 border-radius: 6px;
171 margin-bottom: 15px;
172 overflow: hidden;
173}
174
175.progress-fill {
176 height: 100%;
177 border-radius: 6px;
178 transition: width 0.5s ease;
179}
180
181.quota-total {
182 text-align: right;
183 color: #666;
184 font-size: 14px;
185}
186
187/* 下载进度卡片 */
188.progress-card {
189 background: white;
190 border-radius: 12px;
191 padding: 25px;
192 margin-bottom: 25px;
193 box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
194}
195
196.progress-card h3 {
197 margin-top: 0;
198 margin-bottom: 20px;
199 color: #1e3c72;
200 font-size: 20px;
201}
202
203.download-task {
204 margin-bottom: 20px;
205}
206
207.task-info {
208 display: flex;
209 justify-content: space-between;
210 margin-bottom: 8px;
211}
212
213.task-id {
214 font-size: 15px;
215 color: #666;
216}
217
218.task-progress {
219 font-size: 15px;
220 font-weight: 600;
221 color: #1890ff;
222}
223
224/* 功能卡片区 - 网格布局 */
225.action-cards {
226 display: grid;
227 grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
228 gap: 20px;
229 margin-bottom: 30px;
230}
231
232.action-card {
233 background: white;
234 border-radius: 12px;
235 padding: 25px;
236 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
237 cursor: pointer;
238 transition: all 0.3s;
239 border: 1px solid rgba(30, 60, 114, 0.1);
240 text-align: center;
241}
242
243.action-card:hover {
244 transform: translateY(-5px);
245 box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
246 border-color: rgba(30, 60, 114, 0.2);
247}
248
249.action-card h3 {
250 margin-top: 0;
251 margin-bottom: 15px;
252 color: #1e3c72;
253 font-size: 20px;
254}
255
256.action-card p {
257 color: #666;
258 margin-bottom: 0;
259 font-size: 15px;
260}
261
262/* 子页面容器 */
263.subpage-container {
264 margin-top: 30px;
265 border-top: 2px solid #f0f2f5;
266 padding-top: 30px;
267}
268
269/* 加载和错误状态 */
270.loading, .error {
271 text-align: center;
272 padding: 50px;
273 font-size: 18px;
274 background: white;
275 border-radius: 12px;
276 box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
277 margin: 20px 0;
278}
279
280.error {
281 color: #ff4d4f;
282}
283
284/* 动画效果 */
285@keyframes fadeIn {
286 from { opacity: 0; transform: translateY(10px); }
287 to { opacity: 1; transform: translateY(0); }
288}
289
290/* 响应式设计 */
291@media (max-width: 768px) {
292 .personal-container {
293 padding: 15px;
294 }
295
296 .profile-header {
297 flex-direction: column;
298 text-align: center;
299 }
300
301 .profile-avatar {
302 margin-right: 0;
303 margin-bottom: 15px;
304 }
305
306 .user-meta {
307 justify-content: center;
308 }
309
310 .stats-grid {
311 grid-template-columns: repeat(2, 1fr);
312 }
313
314 .action-cards {
315 grid-template-columns: 1fr;
316 }
317}