blob: ec708eef1636fd20ebbfe8895b1638a7b870a898 [file] [log] [blame]
DREW5b1883e2025-06-07 10:41:32 +08001/* 基础布局样式 - 现代化设计 */
Akane121765b61a72025-05-17 13:52:25 +08002.torrent-detail-container {
3 max-width: 1000px;
4 margin: 0 auto;
DREW5b1883e2025-06-07 10:41:32 +08005 padding: 25px;
6 font-family: 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
Akane121765b61a72025-05-17 13:52:25 +08007 color: #333;
DREW5b1883e2025-06-07 10:41:32 +08008 animation: fadeIn 0.5s ease-out forwards;
Akane121765b61a72025-05-17 13:52:25 +08009}
10
DREW5b1883e2025-06-07 10:41:32 +080011/* 返回按钮 - 渐变风格 */
Akane121765b61a72025-05-17 13:52:25 +080012.back-button {
DREW5b1883e2025-06-07 10:41:32 +080013 display: inline-flex;
14 align-items: center;
15 gap: 8px;
16 padding: 8px 16px;
17 background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
18 color: white;
Akane121765b61a72025-05-17 13:52:25 +080019 border: none;
DREW5b1883e2025-06-07 10:41:32 +080020 border-radius: 6px;
21 font-weight: 600;
Akane121765b61a72025-05-17 13:52:25 +080022 cursor: pointer;
DREW5b1883e2025-06-07 10:41:32 +080023 transition: all 0.3s;
24 margin-bottom: 30px;
25 box-shadow: 0 2px 8px rgba(30, 60, 114, 0.2);
Akane121765b61a72025-05-17 13:52:25 +080026}
27
28.back-button:hover {
DREW5b1883e2025-06-07 10:41:32 +080029 transform: translateY(-2px);
30 box-shadow: 0 4px 12px rgba(30, 60, 114, 0.3);
Akane121765b61a72025-05-17 13:52:25 +080031}
32
DREW5b1883e2025-06-07 10:41:32 +080033.back-button::before {
34 content: "←";
35}
36
37/* 种子信息区域 - 卡片式设计 */
Akane121765b61a72025-05-17 13:52:25 +080038.torrent-main {
39 display: flex;
40 gap: 30px;
41 margin-bottom: 40px;
DREW5b1883e2025-06-07 10:41:32 +080042 background: white;
43 border-radius: 12px;
44 padding: 30px;
45 box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
46 transition: transform 0.3s, box-shadow 0.3s;
47}
48
49.torrent-main:hover {
50 transform: translateY(-5px);
51 box-shadow: 0 12px 25px rgba(0, 0, 0, 0.12);
Akane121765b61a72025-05-17 13:52:25 +080052}
53
54.torrent-cover {
55 flex: 0 0 300px;
56}
57
58.cover-placeholder {
59 width: 100%;
60 height: 450px;
DREW5b1883e2025-06-07 10:41:32 +080061 background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
Akane121765b61a72025-05-17 13:52:25 +080062 display: flex;
63 align-items: center;
64 justify-content: center;
65 font-size: 72px;
DREW5b1883e2025-06-07 10:41:32 +080066 color: #1e3c72;
67 border-radius: 8px;
68 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
69 transition: transform 0.3s;
70}
71
72.cover-placeholder:hover {
73 transform: scale(1.02);
Akane121765b61a72025-05-17 13:52:25 +080074}
75
76.torrent-info {
77 flex: 1;
78}
79
DREW5b1883e2025-06-07 10:41:32 +080080/* 标题样式 - 渐变文字 */
Akane121765b61a72025-05-17 13:52:25 +080081.torrent-title {
DREW5b1883e2025-06-07 10:41:32 +080082 font-size: 32px;
Akane121765b61a72025-05-17 13:52:25 +080083 margin-bottom: 20px;
DREW5b1883e2025-06-07 10:41:32 +080084 background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
85 -webkit-background-clip: text;
86 -webkit-text-fill-color: transparent;
87 font-weight: 800;
Akane121765b61a72025-05-17 13:52:25 +080088}
89
DREW5b1883e2025-06-07 10:41:32 +080090/* 上传者信息 - 圆形头像 */
Akane121765b61a72025-05-17 13:52:25 +080091.uploader-info {
92 display: flex;
93 align-items: center;
94 gap: 15px;
DREW5b1883e2025-06-07 10:41:32 +080095 margin-bottom: 25px;
96 position: relative;
Akane121765b61a72025-05-17 13:52:25 +080097}
98
99.uploader-avatar {
DREW5b1883e2025-06-07 10:41:32 +0800100 width: 50px;
101 height: 50px;
Akane121765b61a72025-05-17 13:52:25 +0800102 border-radius: 50%;
DREW5b1883e2025-06-07 10:41:32 +0800103 background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
Akane121765b61a72025-05-17 13:52:25 +0800104 color: white;
105 display: flex;
106 align-items: center;
107 justify-content: center;
108 font-weight: bold;
DREW5b1883e2025-06-07 10:41:32 +0800109 font-size: 20px;
110 flex-shrink: 0;
111 border: 3px solid rgba(30, 60, 114, 0.2);
Akane121765b61a72025-05-17 13:52:25 +0800112}
113
114.uploader-details {
115 flex: 1;
116}
117
118.uploader-name {
DREW5b1883e2025-06-07 10:41:32 +0800119 font-weight: 700;
120 color: #1e3c72;
121 font-size: 18px;
Akane121765b61a72025-05-17 13:52:25 +0800122}
123
124.upload-time {
125 font-size: 14px;
126 color: #777;
DREW5b1883e2025-06-07 10:41:32 +0800127 margin-top: 3px;
Akane121765b61a72025-05-17 13:52:25 +0800128}
129
DREW5b1883e2025-06-07 10:41:32 +0800130/* 种子元信息 - 网格布局 */
Akane121765b61a72025-05-17 13:52:25 +0800131.torrent-meta {
DREW5b1883e2025-06-07 10:41:32 +0800132 display: grid;
133 grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
134 gap: 15px;
135 margin-bottom: 25px;
136 padding: 15px;
137 background: #f9fafc;
138 border-radius: 8px;
Akane121765b61a72025-05-17 13:52:25 +0800139}
140
141.torrent-meta p {
DREW5b1883e2025-06-07 10:41:32 +0800142 margin: 0;
143 font-size: 15px;
Akane121765b61a72025-05-17 13:52:25 +0800144}
145
DREW5b1883e2025-06-07 10:41:32 +0800146.torrent-meta strong {
147 color: #1e3c72;
148 margin-right: 8px;
149}
150
151/* 描述区域 - 更好的阅读体验 */
Akane121765b61a72025-05-17 13:52:25 +0800152.torrent-description {
153 margin-bottom: 30px;
DREW5b1883e2025-06-07 10:41:32 +0800154 line-height: 1.8;
155 font-size: 16px;
156 padding: 15px;
157 background: #f9fafc;
158 border-radius: 8px;
Akane121765b61a72025-05-17 13:52:25 +0800159}
160
DREW5b1883e2025-06-07 10:41:32 +0800161.torrent-description h3 {
162 color: #1e3c72;
163 margin-top: 0;
164 margin-bottom: 15px;
165 font-size: 20px;
166}
167
168/* 交互按钮 - 现代化设计 */
Akane121765b61a72025-05-17 13:52:25 +0800169.interaction-buttons {
170 display: flex;
171 gap: 15px;
DREW5b1883e2025-06-07 10:41:32 +0800172 margin-top: 25px;
Akane121765b61a72025-05-17 13:52:25 +0800173}
174
175.interaction-buttons button {
DREW5b1883e2025-06-07 10:41:32 +0800176 padding: 12px 24px;
Akane121765b61a72025-05-17 13:52:25 +0800177 border: none;
DREW5b1883e2025-06-07 10:41:32 +0800178 border-radius: 6px;
Akane121765b61a72025-05-17 13:52:25 +0800179 cursor: pointer;
DREW5b1883e2025-06-07 10:41:32 +0800180 font-size: 15px;
181 font-weight: 600;
182 transition: all 0.3s;
183 display: flex;
184 align-items: center;
185 gap: 8px;
Akane121765b61a72025-05-17 13:52:25 +0800186}
187
188.like-button {
DREW5b1883e2025-06-07 10:41:32 +0800189 background: linear-gradient(135deg, #f6f7f9 0%, #e9ebee 100%);
190 color: #666;
Akane121765b61a72025-05-17 13:52:25 +0800191}
192
193.like-button:hover {
DREW5b1883e2025-06-07 10:41:32 +0800194 background: linear-gradient(135deg, #ebedf0 0%, #d8dadf 100%);
195 transform: translateY(-2px);
196 box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
Akane121765b61a72025-05-17 13:52:25 +0800197}
198
199.download-button {
DREW5b1883e2025-06-07 10:41:32 +0800200 background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
Akane121765b61a72025-05-17 13:52:25 +0800201 color: white;
202}
203
204.download-button:hover {
DREW5b1883e2025-06-07 10:41:32 +0800205 background: linear-gradient(135deg, #2a5298 0%, #1e3c72 100%);
206 transform: translateY(-2px);
207 box-shadow: 0 4px 12px rgba(30, 60, 114, 0.3);
Akane121765b61a72025-05-17 13:52:25 +0800208}
209
DREW5b1883e2025-06-07 10:41:32 +0800210/* 评论区域 - 卡片式设计 */
Akane121765b61a72025-05-17 13:52:25 +0800211.comments-section {
DREW5b1883e2025-06-07 10:41:32 +0800212 background: white;
213 border-radius: 12px;
214 padding: 30px;
215 box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
216 margin-top: 30px;
Akane121765b61a72025-05-17 13:52:25 +0800217}
218
219.comments-section h2 {
DREW5b1883e2025-06-07 10:41:32 +0800220 font-size: 24px;
221 color: #1e3c72;
Akane121765b61a72025-05-17 13:52:25 +0800222 margin-bottom: 20px;
223 padding-bottom: 10px;
DREW5b1883e2025-06-07 10:41:32 +0800224 border-bottom: 2px solid #f0f2f5;
Akane121765b61a72025-05-17 13:52:25 +0800225}
226
DREW5b1883e2025-06-07 10:41:32 +0800227/* 评论表单 - 现代化设计 */
Akane121765b61a72025-05-17 13:52:25 +0800228.comment-form {
229 margin-bottom: 30px;
230}
231
232.comment-form textarea {
233 width: 100%;
DREW5b1883e2025-06-07 10:41:32 +0800234 padding: 15px;
235 border: 2px solid #f0f2f5;
236 border-radius: 8px;
Akane121765b61a72025-05-17 13:52:25 +0800237 resize: vertical;
DREW5b1883e2025-06-07 10:41:32 +0800238 min-height: 100px;
239 margin-bottom: 15px;
240 font-size: 15px;
241 transition: all 0.3s;
242}
243
244.comment-form textarea:focus {
245 border-color: #1e3c72;
246 box-shadow: 0 0 0 3px rgba(30, 60, 114, 0.2);
247 outline: none;
Akane121765b61a72025-05-17 13:52:25 +0800248}
249
250.comment-form button {
DREW5b1883e2025-06-07 10:41:32 +0800251 padding: 12px 24px;
252 background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
Akane121765b61a72025-05-17 13:52:25 +0800253 color: white;
254 border: none;
DREW5b1883e2025-06-07 10:41:32 +0800255 border-radius: 6px;
256 font-weight: 600;
Akane121765b61a72025-05-17 13:52:25 +0800257 cursor: pointer;
DREW5b1883e2025-06-07 10:41:32 +0800258 transition: all 0.3s;
Akane121765b61a72025-05-17 13:52:25 +0800259}
260
261.comment-form button:hover {
DREW5b1883e2025-06-07 10:41:32 +0800262 transform: translateY(-2px);
263 box-shadow: 0 4px 12px rgba(30, 60, 114, 0.3);
Akane121765b61a72025-05-17 13:52:25 +0800264}
265
DREW5b1883e2025-06-07 10:41:32 +0800266/* 评论列表 - 现代化设计 */
Akane121765b61a72025-05-17 13:52:25 +0800267.comment-list {
DREW5b1883e2025-06-07 10:41:32 +0800268 margin-top: 25px;
Akane121765b61a72025-05-17 13:52:25 +0800269}
270
Akane121765b61a72025-05-17 13:52:25 +0800271.comment-container {
DREW5b1883e2025-06-07 10:41:32 +0800272 margin-bottom: 20px;
Akane121765b61a72025-05-17 13:52:25 +0800273}
274
275.comment-item {
276 display: flex;
277 gap: 15px;
DREW5b1883e2025-06-07 10:41:32 +0800278 padding: 20px;
279 background: #f9fafc;
280 border-radius: 10px;
281 transition: all 0.3s;
Akane121765b61a72025-05-17 13:52:25 +0800282}
283
DREW5b1883e2025-06-07 10:41:32 +0800284.comment-item:hover {
285 background: #f0f4f8;
286 transform: translateX(5px);
Akane121765b61a72025-05-17 13:52:25 +0800287}
288
289.comment-avatar {
DREW5b1883e2025-06-07 10:41:32 +0800290 width: 50px;
291 height: 50px;
Akane121765b61a72025-05-17 13:52:25 +0800292 border-radius: 50%;
DREW5b1883e2025-06-07 10:41:32 +0800293 background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
Akane121765b61a72025-05-17 13:52:25 +0800294 color: white;
295 display: flex;
296 align-items: center;
297 justify-content: center;
298 font-weight: bold;
DREW5b1883e2025-06-07 10:41:32 +0800299 font-size: 20px;
300 flex-shrink: 0;
Akane121765b61a72025-05-17 13:52:25 +0800301}
302
303.comment-content {
304 flex: 1;
305}
306
307.comment-header {
DREW5b1883e2025-06-07 10:41:32 +0800308 margin-bottom: 10px;
Akane121765b61a72025-05-17 13:52:25 +0800309}
310
311.comment-user {
DREW5b1883e2025-06-07 10:41:32 +0800312 font-weight: 700;
313 color: #1e3c72;
Akane121765b61a72025-05-17 13:52:25 +0800314 margin-right: 10px;
315}
316
317.reply-to {
318 color: #666;
319 font-size: 14px;
Akane121765b61a72025-05-17 13:52:25 +0800320}
321
322.comment-time {
323 font-size: 14px;
DREW5b1883e2025-06-07 10:41:32 +0800324 color: #888;
Akane121765b61a72025-05-17 13:52:25 +0800325}
326
327.comment-text {
DREW5b1883e2025-06-07 10:41:32 +0800328 margin-bottom: 15px;
329 line-height: 1.7;
330 color: #333;
Akane121765b61a72025-05-17 13:52:25 +0800331}
332
333.comment-actions {
334 display: flex;
335 gap: 15px;
336}
337
338.comment-actions button {
339 background: none;
340 border: none;
DREW5b1883e2025-06-07 10:41:32 +0800341 color: #666;
Akane121765b61a72025-05-17 13:52:25 +0800342 cursor: pointer;
343 font-size: 14px;
DREW5b1883e2025-06-07 10:41:32 +0800344 padding: 5px 10px;
345 border-radius: 4px;
346 transition: all 0.3s;
347 display: flex;
348 align-items: center;
349 gap: 5px;
Akane121765b61a72025-05-17 13:52:25 +0800350}
351
352.comment-actions button:hover {
DREW5b1883e2025-06-07 10:41:32 +0800353 color: #1e3c72;
354 background: rgba(30, 60, 114, 0.1);
Akane121765b61a72025-05-17 13:52:25 +0800355}
356
DREW5b1883e2025-06-07 10:41:32 +0800357/* 副评论样式 */
358.comment-container.is-reply {
359 margin-left: 60px;
360 position: relative;
Akane121765b61a72025-05-17 13:52:25 +0800361}
362
DREW5b1883e2025-06-07 10:41:32 +0800363.comment-container.is-reply:before {
364 content: "";
365 position: absolute;
366 left: -30px;
367 top: 30px;
368 width: 20px;
369 height: 1px;
370 background: #ddd;
371}
372
Akane121765b61a72025-05-17 13:52:25 +0800373.comment-container.is-reply .comment-item {
DREW5b1883e2025-06-07 10:41:32 +0800374 background: #f5f7fa;
Akane121765b61a72025-05-17 13:52:25 +0800375}
376
377/* 回复表单样式 */
378.reply-form {
DREW5b1883e2025-06-07 10:41:32 +0800379 margin-left: 65px;
Akane121765b61a72025-05-17 13:52:25 +0800380 margin-top: 15px;
Akane121765b61a72025-05-17 13:52:25 +0800381 margin-bottom: 15px;
DREW5b1883e2025-06-07 10:41:32 +0800382 background: #f5f7fa;
383 padding: 15px;
384 border-radius: 8px;
Akane121765b61a72025-05-17 13:52:25 +0800385 border: 1px solid #eee;
386}
387
Akane121765b61a72025-05-17 13:52:25 +0800388.reply-form textarea {
389 width: 100%;
DREW5b1883e2025-06-07 10:41:32 +0800390 padding: 12px;
Akane121765b61a72025-05-17 13:52:25 +0800391 border: 1px solid #ddd;
392 border-radius: 4px;
393 resize: vertical;
DREW5b1883e2025-06-07 10:41:32 +0800394 min-height: 80px;
Akane121765b61a72025-05-17 13:52:25 +0800395 font-family: inherit;
396 font-size: 14px;
DREW5b1883e2025-06-07 10:41:32 +0800397 transition: all 0.3s;
398}
399
400.reply-form textarea:focus {
401 border-color: #1e3c72;
402 box-shadow: 0 0 0 3px rgba(30, 60, 114, 0.2);
403 outline: none;
Akane121765b61a72025-05-17 13:52:25 +0800404}
405
406.reply-form-buttons {
407 display: flex;
408 gap: 10px;
409 margin-top: 10px;
DREW5b1883e2025-06-07 10:41:32 +0800410 justify-content: flex-end;
Akane121765b61a72025-05-17 13:52:25 +0800411}
412
413.reply-form-buttons button {
DREW5b1883e2025-06-07 10:41:32 +0800414 padding: 8px 16px;
415 border-radius: 6px;
Akane121765b61a72025-05-17 13:52:25 +0800416 cursor: pointer;
DREW5b1883e2025-06-07 10:41:32 +0800417 font-size: 14px;
418 font-weight: 600;
419 transition: all 0.3s;
Akane121765b61a72025-05-17 13:52:25 +0800420}
421
422.reply-form-buttons button[type="submit"] {
DREW5b1883e2025-06-07 10:41:32 +0800423 background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
Akane121765b61a72025-05-17 13:52:25 +0800424 color: white;
425 border: none;
426}
427
428.reply-form-buttons button[type="submit"]:hover {
DREW5b1883e2025-06-07 10:41:32 +0800429 transform: translateY(-2px);
430 box-shadow: 0 4px 8px rgba(30, 60, 114, 0.2);
Akane121765b61a72025-05-17 13:52:25 +0800431}
432
433.reply-form-buttons .cancel-reply {
DREW5b1883e2025-06-07 10:41:32 +0800434 background: #f5f5f5;
Akane121765b61a72025-05-17 13:52:25 +0800435 border: 1px solid #d9d9d9;
436 color: #666;
437}
438
439.reply-form-buttons .cancel-reply:hover {
DREW5b1883e2025-06-07 10:41:32 +0800440 background: #e8e8e8;
Akane121765b61a72025-05-17 13:52:25 +0800441}
442
443/* 回复弹窗样式 */
444.reply-modal-overlay {
445 position: fixed;
446 top: 0;
447 left: 0;
448 right: 0;
449 bottom: 0;
DREW5b1883e2025-06-07 10:41:32 +0800450 background: rgba(0, 0, 0, 0.5);
Akane121765b61a72025-05-17 13:52:25 +0800451 display: flex;
452 justify-content: center;
453 align-items: center;
454 z-index: 1000;
DREW5b1883e2025-06-07 10:41:32 +0800455 backdrop-filter: blur(5px);
Akane121765b61a72025-05-17 13:52:25 +0800456}
457
458.reply-modal {
459 background: white;
DREW5b1883e2025-06-07 10:41:32 +0800460 padding: 25px;
461 border-radius: 12px;
462 width: 500px;
463 max-width: 90%;
464 box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
Akane121765b61a72025-05-17 13:52:25 +0800465}
466
467.modal-header {
468 display: flex;
469 justify-content: space-between;
470 align-items: center;
DREW5b1883e2025-06-07 10:41:32 +0800471 margin-bottom: 20px;
Akane121765b61a72025-05-17 13:52:25 +0800472}
473
474.modal-header h3 {
475 margin: 0;
DREW5b1883e2025-06-07 10:41:32 +0800476 color: #1e3c72;
477 font-size: 20px;
Akane121765b61a72025-05-17 13:52:25 +0800478}
479
480.close-modal {
481 background: none;
482 border: none;
483 font-size: 24px;
Akane121765b61a72025-05-17 13:52:25 +0800484 color: #666;
DREW5b1883e2025-06-07 10:41:32 +0800485 cursor: pointer;
486 transition: all 0.3s;
487}
488
489.close-modal:hover {
490 color: #1e3c72;
491 transform: rotate(90deg);
Akane121765b61a72025-05-17 13:52:25 +0800492}
493
494.reply-modal textarea {
495 width: 100%;
DREW5b1883e2025-06-07 10:41:32 +0800496 padding: 15px;
497 border: 2px solid #f0f2f5;
498 border-radius: 8px;
Akane121765b61a72025-05-17 13:52:25 +0800499 resize: vertical;
DREW5b1883e2025-06-07 10:41:32 +0800500 min-height: 150px;
501 margin-bottom: 20px;
502 font-size: 15px;
503 transition: all 0.3s;
504}
505
506.reply-modal textarea:focus {
507 border-color: #1e3c72;
508 box-shadow: 0 0 0 3px rgba(30, 60, 114, 0.2);
509 outline: none;
Akane121765b61a72025-05-17 13:52:25 +0800510}
511
512.modal-actions {
513 display: flex;
514 justify-content: flex-end;
DREW5b1883e2025-06-07 10:41:32 +0800515 gap: 15px;
Akane121765b61a72025-05-17 13:52:25 +0800516}
517
518.cancel-btn {
DREW5b1883e2025-06-07 10:41:32 +0800519 padding: 10px 20px;
Akane121765b61a72025-05-17 13:52:25 +0800520 background: #f5f5f5;
Akane121765b61a72025-05-17 13:52:25 +0800521 color: #666;
DREW5b1883e2025-06-07 10:41:32 +0800522 border: none;
523 border-radius: 6px;
524 font-weight: 600;
525 cursor: pointer;
526 transition: all 0.3s;
Akane121765b61a72025-05-17 13:52:25 +0800527}
528
529.cancel-btn:hover {
DREW5b1883e2025-06-07 10:41:32 +0800530 background: #e0e0e0;
Akane121765b61a72025-05-17 13:52:25 +0800531}
532
533.submit-btn {
DREW5b1883e2025-06-07 10:41:32 +0800534 padding: 10px 20px;
535 background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
Akane121765b61a72025-05-17 13:52:25 +0800536 color: white;
537 border: none;
DREW5b1883e2025-06-07 10:41:32 +0800538 border-radius: 6px;
539 font-weight: 600;
540 cursor: pointer;
541 transition: all 0.3s;
Akane121765b61a72025-05-17 13:52:25 +0800542}
543
544.submit-btn:hover {
DREW5b1883e2025-06-07 10:41:32 +0800545 transform: translateY(-2px);
546 box-shadow: 0 4px 12px rgba(30, 60, 114, 0.3);
Akane121765b61a72025-05-17 13:52:25 +0800547}
DREW5b1883e2025-06-07 10:41:32 +0800548
549/* 加载和错误状态 */
550.loading, .error {
551 text-align: center;
552 padding: 50px;
553 font-size: 18px;
554 background: white;
555 border-radius: 12px;
556 box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
557 margin: 20px 0;
558}
559
560.error {
561 color: #ff4d4f;
562}
563
564/* 动画效果 */
565@keyframes fadeIn {
566 from { opacity: 0; transform: translateY(10px); }
567 to { opacity: 1; transform: translateY(0); }
568}
569
570/* 响应式设计 */
571@media (max-width: 768px) {
572 .torrent-detail-container {
573 padding: 15px;
574 }
575
576 .torrent-main {
577 flex-direction: column;
578 padding: 20px;
579 }
580
581 .torrent-cover {
582 flex: 1 1 100%;
583 margin-bottom: 20px;
584 }
585
586 .torrent-title {
587 font-size: 24px;
588 }
589
590 .torrent-meta {
591 grid-template-columns: 1fr;
592 }
593
594 .comment-container.is-reply {
595 margin-left: 30px;
596 }
597
598 .reply-form {
599 margin-left: 45px;
600 }
601}