前段

Change-Id: I718d4d07ea03c6d2b6bcbd4d426c5d1af2201bf4
diff --git a/src/components/TorrentDetail.css b/src/components/TorrentDetail.css
new file mode 100644
index 0000000..f2b1ad2
--- /dev/null
+++ b/src/components/TorrentDetail.css
@@ -0,0 +1,516 @@
+/* 基础布局样式 */

+.torrent-detail-container {

+  max-width: 1000px;

+  margin: 0 auto;

+  padding: 20px;

+  color: #333;

+}

+

+.back-button {

+  background: none;

+  border: none;

+  color: #3498db;

+  font-size: 16px;

+  cursor: pointer;

+  margin-bottom: 20px;

+  padding: 5px 10px;

+}

+

+.back-button:hover {

+  text-decoration: underline;

+}

+

+/* 种子信息区域 */

+.torrent-main {

+  display: flex;

+  gap: 30px;

+  margin-bottom: 40px;

+}

+

+.torrent-cover {

+  flex: 0 0 300px;

+}

+

+.cover-placeholder {

+  width: 100%;

+  height: 450px;

+  background-color: #eee;

+  display: flex;

+  align-items: center;

+  justify-content: center;

+  font-size: 72px;

+  color: #999;

+  border-radius: 5px;

+}

+

+.torrent-info {

+  flex: 1;

+}

+

+.torrent-title {

+  font-size: 28px;

+  margin-bottom: 20px;

+  color: #222;

+}

+

+.uploader-info {

+  display: flex;

+  align-items: center;

+  gap: 15px;

+  margin-bottom: 20px;

+}

+

+.uploader-avatar {

+  width: 40px;

+  height: 40px;

+  border-radius: 50%;

+  background-color: #3498db;

+  color: white;

+  display: flex;

+  align-items: center;

+  justify-content: center;

+  font-weight: bold;

+}

+

+.uploader-details {

+  flex: 1;

+}

+

+.uploader-name {

+  font-weight: bold;

+}

+

+.upload-time {

+  font-size: 14px;

+  color: #777;

+}

+

+.torrent-meta {

+  margin-bottom: 20px;

+}

+

+.torrent-meta p {

+  margin: 5px 0;

+}

+

+.torrent-description {

+  margin-bottom: 30px;

+  line-height: 1.6;

+}

+

+.interaction-buttons {

+  display: flex;

+  gap: 15px;

+}

+

+.interaction-buttons button {

+  padding: 8px 15px;

+  border: none;

+  border-radius: 4px;

+  cursor: pointer;

+  font-size: 14px;

+  transition: background-color 0.2s;

+}

+

+.like-button {

+  background-color: #f0f0f0;

+}

+

+.like-button:hover {

+  background-color: #e0e0e0;

+}

+

+.download-button {

+  background-color: #3498db;

+  color: white;

+}

+

+.download-button:hover {

+  background-color: #2980b9;

+}

+

+/* 评论区域样式 */

+.comments-section {

+  margin-top: 40px;

+}

+

+.comments-section h2 {

+  font-size: 22px;

+  margin-bottom: 20px;

+  padding-bottom: 10px;

+  border-bottom: 1px solid #eee;

+}

+

+.comment-form {

+  margin-bottom: 30px;

+}

+

+.comment-form textarea {

+  width: 100%;

+  padding: 10px;

+  border: 1px solid #ddd;

+  border-radius: 4px;

+  margin-bottom: 10px;

+  resize: vertical;

+  min-height: 80px;

+}

+

+.comment-form button {

+  background-color: #3498db;

+  color: white;

+  border: none;

+  padding: 8px 15px;

+  border-radius: 4px;

+  cursor: pointer;

+}

+

+.comment-form button:hover {

+  background-color: #2980b9;

+}

+

+.comment-list {

+  margin-top: 20px;

+}

+

+/* 评论项统一样式 */

+.comment-container {

+  margin-bottom: 15px;

+}

+

+.comment-item {

+  display: flex;

+  gap: 15px;

+  padding: 12px;

+  background: #fff;

+  border-radius: 8px;

+  border: 1px solid #eaeaea;

+}

+

+/* 副评论统一缩进 */

+.comment-container.is-reply {

+  margin-left: 40px;

+  position: relative;

+}

+

+/* 副评论连接线 */

+.comment-container.is-reply:before {

+  content: "";

+  position: absolute;

+  left: -20px;

+  top: 20px;

+  width: 15px;

+  height: 1px;

+  background: #ddd;

+}

+

+.comment-avatar {

+  flex: 0 0 40px;

+  height: 40px;

+  border-radius: 50%;

+  background-color: #e74c3c;

+  color: white;

+  display: flex;

+  align-items: center;

+  justify-content: center;

+  font-weight: bold;

+}

+

+.comment-content {

+  flex: 1;

+}

+

+.comment-header {

+  margin-bottom: 8px;

+}

+

+.comment-user {

+  font-weight: bold;

+  margin-right: 10px;

+}

+

+.reply-to {

+  color: #666;

+  font-size: 14px;

+  margin: 0 5px;

+}

+

+.comment-time {

+  font-size: 14px;

+  color: #777;

+}

+

+.comment-text {

+  margin-bottom: 10px;

+  line-height: 1.5;

+}

+

+.comment-actions {

+  display: flex;

+  gap: 15px;

+}

+

+.comment-actions button {

+  background: none;

+  border: none;

+  color: #3498db;

+  cursor: pointer;

+  font-size: 14px;

+  padding: 0;

+}

+

+.comment-actions button:hover {

+  text-decoration: underline;

+}

+

+/* 回复列表容器 */

+.replies-container {

+  margin-top: 15px;

+}

+

+/* 副评论背景色 */

+.comment-container.is-reply .comment-item {

+  background: #f9f9f9;

+}

+

+/* 回复表单样式 */

+.reply-form {

+  margin-top: 15px;

+}

+

+.reply-form textarea {

+  width: 100%;

+  padding: 8px;

+  border: 1px solid #ddd;

+  border-radius: 4px;

+  margin-bottom: 10px;

+  resize: vertical;

+  min-height: 60px;

+}

+

+.reply-actions {

+  display: flex;

+  gap: 10px;

+  justify-content: flex-end;

+}

+

+.reply-actions button {

+  padding: 5px 10px;

+  border: none;

+  border-radius: 3px;

+  cursor: pointer;

+  font-size: 13px;

+}

+

+.reply-actions button[type="button"] {

+  background-color: #f0f0f0;

+}

+

+.reply-actions button[type="submit"] {

+  background-color: #3498db;

+  color: white;

+}

+

+/* 加载和错误状态 */

+.loading {

+  text-align: center;

+  padding: 50px;

+  font-size: 18px;

+}

+

+.error {

+  color: #e74c3c;

+  text-align: center;

+  padding: 50px;

+  font-size: 18px;

+}

+/* 回复表单样式 */

+.reply-form {

+  margin-left: 50px;

+  margin-top: 10px;

+  background: #f5f5f5;

+  padding: 10px;

+  border-radius: 4px;

+}

+

+.reply-form textarea {

+  width: 100%;

+  padding: 8px;

+  border: 1px solid #ddd;

+  border-radius: 4px;

+  resize: vertical;

+}

+

+.reply-form-buttons {

+  display: flex;

+  gap: 10px;

+  margin-top: 8px;

+}

+

+.reply-form-buttons button {

+  padding: 5px 10px;

+  border: none;

+  border-radius: 4px;

+  cursor: pointer;

+}

+

+.reply-form-buttons button[type="submit"] {

+  background-color: #1890ff;

+  color: white;

+}

+

+.reply-form-buttons .cancel-reply {

+  background-color: #f5f5f5;

+  border: 1px solid #d9d9d9;

+}

+

+.comment-list {

+  margin-top: 20px;

+  border-top: 1px solid #eee;

+  padding-top: 20px;

+}

+

+.reply-form {

+  margin-left: 50px;

+  margin-top: 10px;

+  margin-bottom: 15px;

+  background: #f9f9f9;

+  padding: 12px;

+  border-radius: 6px;

+  border: 1px solid #eee;

+}

+

+.reply-form.nested-reply {

+  margin-left: 80px;

+}

+

+.reply-form textarea {

+  width: 100%;

+  padding: 10px;

+  border: 1px solid #ddd;

+  border-radius: 4px;

+  resize: vertical;

+  min-height: 60px;

+  font-family: inherit;

+  font-size: 14px;

+}

+

+.reply-form-buttons {

+  display: flex;

+  gap: 10px;

+  margin-top: 10px;

+}

+

+.reply-form-buttons button {

+  padding: 6px 12px;

+  border-radius: 4px;

+  cursor: pointer;

+  font-size: 13px;

+  transition: all 0.2s;

+}

+

+.reply-form-buttons button[type="submit"] {

+  background-color: #1890ff;

+  color: white;

+  border: none;

+}

+

+.reply-form-buttons button[type="submit"]:hover {

+  background-color: #40a9ff;

+}

+

+.reply-form-buttons .cancel-reply {

+  background-color: #f5f5f5;

+  border: 1px solid #d9d9d9;

+  color: #666;

+}

+

+.reply-form-buttons .cancel-reply:hover {

+  background-color: #e8e8e8;

+}

+

+/* 回复弹窗样式 */

+.reply-modal-overlay {

+  position: fixed;

+  top: 0;

+  left: 0;

+  right: 0;

+  bottom: 0;

+  background-color: rgba(0, 0, 0, 0.5);

+  display: flex;

+  justify-content: center;

+  align-items: center;

+  z-index: 1000;

+}

+

+.reply-modal {

+  background: white;

+  border-radius: 8px;

+  width: 90%;

+  max-width: 500px;

+  padding: 20px;

+  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);

+}

+

+.modal-header {

+  display: flex;

+  justify-content: space-between;

+  align-items: center;

+  margin-bottom: 15px;

+}

+

+.modal-header h3 {

+  margin: 0;

+  font-size: 18px;

+}

+

+.close-modal {

+  background: none;

+  border: none;

+  font-size: 24px;

+  cursor: pointer;

+  color: #666;

+}

+

+.reply-modal textarea {

+  width: 100%;

+  padding: 12px;

+  border: 1px solid #ddd;

+  border-radius: 4px;

+  resize: vertical;

+  min-height: 120px;

+  font-size: 14px;

+  margin-bottom: 15px;

+}

+

+.modal-actions {

+  display: flex;

+  justify-content: flex-end;

+  gap: 10px;

+}

+

+.modal-actions button {

+  padding: 8px 16px;

+  border-radius: 4px;

+  cursor: pointer;

+  font-size: 14px;

+}

+

+.cancel-btn {

+  background: #f5f5f5;

+  border: 1px solid #d9d9d9;

+  color: #666;

+}

+

+.cancel-btn:hover {

+  background: #e8e8e8;

+}

+

+.submit-btn {

+  background: #1890ff;

+  color: white;

+  border: none;

+}

+

+.submit-btn:hover {

+  background: #40a9ff;

+}