/* NeuraFlux - 共享欧式园林风格样式 */

/* 引入Google字体 */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700&family=Lora:wght@400;500;600&display=swap');

/* 页面基础样式 */
.emerald-home-container {
  min-height: 100vh;
  background: linear-gradient(135deg, #2d5016 0%, #4a7c59 20%, #8fbc8f 40%, #98fb98 60%, #f0fff0 100%);
  position: relative;
  font-family: 'Lora', serif;
  overflow-x: hidden;
}

/* 背景装饰元素 */
.emerald-home-container::before {
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: 
    radial-gradient(circle at 20% 80%, rgba(255, 255, 255, 0.08) 0%, transparent 50%),
    radial-gradient(circle at 80% 20%, rgba(255, 255, 255, 0.06) 0%, transparent 50%),
    radial-gradient(circle at 40% 40%, rgba(144, 238, 144, 0.08) 0%, transparent 50%);
  animation: backgroundShift 25s ease-in-out infinite;
  pointer-events: none;
  z-index: 0;
}

/* 流星雨效果 */
.meteor-shower {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  overflow: hidden;
  z-index: 1;
}

.meteor {
  position: absolute;
  font-size: 18px;
  animation: meteorFall linear infinite;
  opacity: 0.8;
  filter: drop-shadow(0 0 6px rgba(144, 238, 144, 0.6));
}

.meteor:nth-child(1) { left: 5%; animation-duration: 12s; animation-delay: 0s; }
.meteor:nth-child(2) { left: 15%; animation-duration: 8s; animation-delay: 3s; }
.meteor:nth-child(3) { left: 25%; animation-duration: 15s; animation-delay: 1s; }
.meteor:nth-child(4) { left: 35%; animation-duration: 10s; animation-delay: 5s; }
.meteor:nth-child(5) { left: 45%; animation-duration: 13s; animation-delay: 2s; }
.meteor:nth-child(6) { left: 55%; animation-duration: 9s; animation-delay: 6s; }
.meteor:nth-child(7) { left: 65%; animation-duration: 14s; animation-delay: 0.5s; }
.meteor:nth-child(8) { left: 75%; animation-duration: 11s; animation-delay: 4s; }
.meteor:nth-child(9) { left: 85%; animation-duration: 16s; animation-delay: 1.5s; }
.meteor:nth-child(10) { left: 95%; animation-duration: 7s; animation-delay: 3.5s; }

/* 浮动装饰元素 */
.floating-garden-elements {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 1;
}

.garden-element {
  position: absolute;
  font-size: 24px;
  opacity: 0.4;
  animation: gardenFloat 6s ease-in-out infinite;
}

.garden-element:nth-child(1) { top: 10%; left: 10%; animation-delay: 0s; }
.garden-element:nth-child(2) { top: 20%; right: 15%; animation-delay: 2s; }
.garden-element:nth-child(3) { bottom: 30%; left: 20%; animation-delay: 4s; }
.garden-element:nth-child(4) { bottom: 15%; right: 25%; animation-delay: 1s; }

/* 内容容器 */
.emerald-content {
  position: relative;
  z-index: 10;
  padding: 20px;
  max-width: 1400px;
  margin: 0 auto;
}

/* 用户栏样式 */
.emerald-user-bar {
  position: fixed;
  top: 18px;
  right: 42px;
  z-index: 100;
  display: flex;
  align-items: center;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(15px);
  border-radius: 20px;
  padding: 8px 24px;
  box-shadow: 
    0 8px 32px rgba(45, 80, 22, 0.15),
    0 4px 16px rgba(144, 238, 144, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.7);
  border: 2px solid rgba(144, 238, 144, 0.3);
  min-width: 320px;
  min-height: 48px;
  width: 520px;
  animation: userBarFloat 4s ease-in-out infinite;
}

.emerald-user-bar::before {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  background: linear-gradient(45deg, 
    #90ee90 0%, 
    #98fb98 25%, 
    #f0fff0 50%, 
    #98fb98 75%, 
    #90ee90 100%);
  border-radius: 22px;
  z-index: -1;
  animation: borderGlow 3s ease-in-out infinite;
}

.emerald-user-avatar {
  cursor: pointer;
  margin-right: 16px;
  transition: all 0.3s ease;
  border-radius: 50%;
  padding: 4px;
  background: linear-gradient(135deg, #90ee90, #2d5016);
}

.emerald-user-avatar:hover {
  transform: scale(1.1) rotate(5deg);
  box-shadow: 0 4px 15px rgba(144, 238, 144, 0.4);
}

/* 品牌区域样式 */
.emerald-brand-section {
  display: flex;
  align-items: center;
  margin-right: 24px;
}

.emerald-brand-icon {
  font-size: 24px;
  margin-right: 8px;
  animation: iconPulse 3s ease-in-out infinite;
}

.emerald-user-label {
  color: #2d5016;
  font-weight: 600;
  font-family: 'Playfair Display', serif;
  letter-spacing: 1px;
}

.emerald-user-stats {
  display: flex;
  gap: 24px;
  flex: 1;
  justify-content: flex-end;
  align-items: center;
}

.emerald-stat-item {
  color: #2d5016;
  font-weight: 500;
  font-size: 14px;
  transition: all 0.3s ease;
  padding: 4px 8px;
  border-radius: 8px;
}

.emerald-stat-item:hover {
  background: rgba(144, 238, 144, 0.2);
  transform: translateY(-2px);
}

.emerald-stat-value {
  font-weight: 700;
  color: #1a5c1a;
}

/* 导航栏样式 */
.emerald-nav-bar {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(20px);
  border-radius: 25px;
  padding: 20px 30px;
  margin: 120px auto 30px;
  box-shadow: 
    0 15px 45px rgba(45, 80, 22, 0.12),
    0 6px 20px rgba(144, 238, 144, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
  border: 2px solid rgba(144, 238, 144, 0.2);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));
  gap: 10px;
  justify-items: center;
  position: relative;
  overflow: hidden;
}

.emerald-nav-bar::before {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  background: linear-gradient(45deg, 
    #90ee90 0%, 
    #98fb98 25%, 
    #f0fff0 50%, 
    #98fb98 75%, 
    #90ee90 100%);
  border-radius: 27px;
  z-index: -1;
  animation: borderGlow 5s ease-in-out infinite;
}

/* 导航项目样式 */
.emerald-nav-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 16px 20px;
  border-radius: 18px;
  cursor: pointer;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  background: rgba(240, 255, 240, 0.3);
  border: 2px solid transparent;
  position: relative;
  overflow: hidden;
  min-width: 90px;
  font-family: 'Lora', serif;
}

.emerald-nav-item::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(144, 238, 144, 0.3), transparent);
  transition: left 0.6s ease;
}

.emerald-nav-item:hover::before {
  left: 100%;
}

.emerald-nav-item:hover {
  transform: translateY(-8px) scale(1.05);
  background: rgba(144, 238, 144, 0.2);
  border-color: rgba(144, 238, 144, 0.4);
  box-shadow: 
    0 12px 35px rgba(45, 80, 22, 0.2),
    0 6px 20px rgba(144, 238, 144, 0.15);
}

.emerald-nav-item.active {
  background: linear-gradient(135deg, #90ee90 0%, #2d5016 100%);
  color: white;
  border-color: #2d5016;
  transform: translateY(-4px);
  box-shadow: 
    0 8px 25px rgba(45, 80, 22, 0.3),
    0 4px 15px rgba(144, 238, 144, 0.2);
}

/* 导航图标动画 */
.emerald-nav-icon {
  font-size: 28px !important;
  margin-bottom: 8px;
  transition: all 0.4s ease;
  position: relative;
}

.emerald-nav-item:hover .emerald-nav-icon {
  animation: iconDance 0.6s ease-in-out;
  transform: scale(1.2);
}

.emerald-nav-item.active .emerald-nav-icon {
  color: white;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
}

/* 导航标签 */
.emerald-nav-label {
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.5px;
  color: #2d5016;
  transition: all 0.3s ease;
}

.emerald-nav-item:hover .emerald-nav-label {
  color: #1a5c1a;
  transform: scale(1.05);
}

.emerald-nav-item.active .emerald-nav-label {
  color: white;
  font-weight: 700;
}

/* 内容区域样式 */
.emerald-content-section {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(20px);
  border-radius: 25px;
  padding: 30px;
  margin: 30px auto;
  box-shadow: 
    0 20px 60px rgba(45, 80, 22, 0.12),
    0 8px 25px rgba(144, 238, 144, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
  border: 2px solid rgba(144, 238, 144, 0.2);
  position: relative;
  overflow: hidden;
}

.emerald-content-section::before {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  background: linear-gradient(45deg, 
    #90ee90 0%, 
    #98fb98 25%, 
    #f0fff0 50%, 
    #98fb98 75%, 
    #90ee90 100%);
  border-radius: 27px;
  z-index: -1;
  animation: borderGlow 4s ease-in-out infinite;
}

.emerald-page-title {
  text-align: center;
  color: #2d5016;
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  font-size: 32px;
  margin-bottom: 30px;
  letter-spacing: 2px;
}

/* 表格区域样式 */
.emerald-table-section {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(20px);
  border-radius: 25px;
  padding: 30px;
  margin: 30px auto;
  box-shadow: 
    0 20px 60px rgba(45, 80, 22, 0.12),
    0 8px 25px rgba(144, 238, 144, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
  border: 2px solid rgba(144, 238, 144, 0.2);
  position: relative;
  overflow: hidden;
}

.emerald-table-section::before {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  background: linear-gradient(45deg, 
    #90ee90 0%, 
    #98fb98 25%, 
    #f0fff0 50%, 
    #98fb98 75%, 
    #90ee90 100%);
  border-radius: 27px;
  z-index: -1;
  animation: borderGlow 4s ease-in-out infinite;
}

/* 表格样式 */
.emerald-table {
  width: 100%;
  border-collapse: collapse;
  font-family: 'Lora', serif;
  background: transparent;
}

.emerald-table thead {
  background: linear-gradient(135deg, #2d5016 0%, #4a7c59 100%);
}

.emerald-table th {
  padding: 16px 20px;
  text-align: left;
  color: white;
  font-weight: 600;
  font-size: 16px;
  letter-spacing: 1px;
  border-bottom: 3px solid #90ee90;
  position: relative;
}

.emerald-table th:first-child {
  border-radius: 15px 0 0 0;
}

.emerald-table th:last-child {
  border-radius: 0 15px 0 0;
}

.emerald-table tbody tr {
  transition: all 0.3s ease;
  border-bottom: 1px solid rgba(144, 238, 144, 0.2);
}

.emerald-table tbody tr:hover {
  background: rgba(144, 238, 144, 0.1);
  transform: translateX(5px);
  box-shadow: 0 4px 15px rgba(144, 238, 144, 0.15);
}

.emerald-table td {
  padding: 14px 20px;
  color: #2d5016;
  font-size: 15px;
  vertical-align: middle;
  transition: all 0.3s ease;
}

.emerald-table tbody tr:hover td {
  color: #1a5c1a;
}

/* 表格链接样式 */
.emerald-table a {
  color: #2d5016;
  text-decoration: none;
  font-weight: 500;
  transition: all 0.3s ease;
  padding: 4px 8px;
  border-radius: 8px;
  display: inline-block;
}

.emerald-table a:hover {
  color: #1a5c1a;
  background: rgba(144, 238, 144, 0.2);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(144, 238, 144, 0.3);
}

/* 论坛页面专用样式 */

/* 文字雨背景效果 */
.forum-text-rain {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  overflow: hidden;
  z-index: 1;
}

.text-drop {
  position: absolute;
  top: -50px;
  font-size: 14px;
  color: rgba(45, 80, 22, 0.6);
  font-family: 'Lora', serif;
  font-weight: 500;
  animation: textFall linear infinite;
  filter: drop-shadow(0 0 4px rgba(144, 238, 144, 0.3));
}

@keyframes textFall {
  0% {
    top: -50px;
    opacity: 0;
    transform: translateX(0);
  }
  10% {
    opacity: 1;
  }
  90% {
    opacity: 1;
  }
  100% {
    top: 100vh;
    opacity: 0;
    transform: translateX(20px);
  }
}

/* 论坛工具栏样式 */
.forum-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 30px;
  padding: 20px 30px;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(15px);
  border-radius: 20px;
  box-shadow: 
    0 8px 32px rgba(45, 80, 22, 0.12),
    0 4px 16px rgba(144, 238, 144, 0.08);
  border: 2px solid rgba(144, 238, 144, 0.2);
  gap: 20px;
}

.search-section {
  display: flex;
  align-items: center;
  gap: 0;
  flex: 1;
  max-width: 500px;
}

.search-input-container {
  position: relative;
  flex: 1;
  display: flex;
  align-items: center;
}

.search-icon {
  position: absolute;
  left: 15px;
  top: 50%;
  transform: translateY(-50%);
  color: rgba(45, 80, 22, 0.6);
  font-size: 20px !important;
}

.forum-search-input {
  width: 100%;
  padding: 12px 20px 12px 50px;
  border: 2px solid rgba(144, 238, 144, 0.3);
  border-radius: 25px 0 0 25px;
  background: rgba(240, 255, 240, 0.5);
  font-size: 16px;
  font-family: 'Lora', serif;
  outline: none;
  transition: all 0.3s ease;
  border-right: none;
}

.forum-search-input:focus {
  border-color: rgba(144, 238, 144, 0.6);
  background: rgba(240, 255, 240, 0.8);
  box-shadow: 0 0 15px rgba(144, 238, 144, 0.2);
}

.forum-search-btn {
  padding: 14px 20px;
  border: 2px solid rgba(144, 238, 144, 0.3);
  border-left: none;
  border-radius: 0 25px 25px 0;
  background: linear-gradient(135deg, #2d5016 0%, #90ee90 100%);
  color: white;
  font-size: 16px;
  font-family: 'Lora', serif;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 4px 15px rgba(45, 80, 22, 0.2);
  white-space: nowrap;
}

.forum-search-btn:hover {
  background: linear-gradient(135deg, #1a3d0e 0%, #7ddc7d 100%);
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(45, 80, 22, 0.3);
}

.forum-search-input:focus + .forum-search-btn {
  border-color: rgba(144, 238, 144, 0.6);
}

.new-post-btn {
  display: flex;
  align-items: center;
  padding: 12px 20px;
  border: none;
  border-radius: 20px;
  background: linear-gradient(135deg, #90ee90 0%, #2d5016 100%);
  color: white;
  font-size: 16px;
  font-family: 'Lora', serif;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 4px 15px rgba(144, 238, 144, 0.2);
}

.new-post-btn:hover {
  transform: translateY(-2px) scale(1.02);
  box-shadow: 0 6px 20px rgba(144, 238, 144, 0.3);
}

/* 论坛帖子容器 */
.forum-posts-container {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* 论坛帖子卡片样式 */
.forum-post-card {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(15px);
  border-radius: 20px;
  padding: 25px 30px;
  border: 2px solid rgba(144, 238, 144, 0.2);
  cursor: pointer;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  overflow: hidden;
  box-shadow: 0 8px 25px rgba(45, 80, 22, 0.1);
}

.forum-post-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(144, 238, 144, 0.1), transparent);
  transition: left 0.6s ease;
}

.forum-post-card:hover::before {
  left: 100%;
}

.forum-post-card:hover {
  transform: translateY(-8px) scale(1.02);
  border-color: rgba(144, 238, 144, 0.4);
  box-shadow: 
    0 15px 40px rgba(45, 80, 22, 0.15),
    0 8px 25px rgba(144, 238, 144, 0.1);
}

/* 帖子头部信息 */
.post-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 15px;
}

.post-author-info {
  display: flex;
  align-items: center;
  gap: 12px;
}

.author-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(135deg, #90ee90, #2d5016);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 10px rgba(45, 80, 22, 0.2);
}

.author-details {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.author-name {
  font-weight: 600;
  color: #2d5016;
  font-size: 16px;
  font-family: 'Lora', serif;
}

.post-time {
  font-size: 12px;
  color: rgba(45, 80, 22, 0.7);
}

.post-stats {
  display: flex;
  gap: 15px;
}

.stat-item {
  background: rgba(144, 238, 144, 0.2);
  padding: 4px 10px;
  border-radius: 12px;
  font-size: 12px;
  color: #2d5016;
  font-weight: 500;
}

/* 帖子内容区域 */
.post-content {
  margin: 15px 0;
}

.post-title {
  font-family: 'Playfair Display', serif;
  font-size: 20px;
  font-weight: 700;
  color: #2d5016;
  margin-bottom: 10px;
  line-height: 1.3;
}

.post-preview {
  font-size: 15px;
  color: rgba(45, 80, 22, 0.8);
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* 帖子底部 */
.post-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 15px;
  padding-top: 15px;
  border-top: 1px solid rgba(144, 238, 144, 0.2);
}

.post-tags {
  display: flex;
  gap: 8px;
}

.post-tag {
  background: linear-gradient(135deg, #90ee90, #2d5016);
  color: white;
  padding: 4px 12px;
  border-radius: 15px;
  font-size: 12px;
  font-weight: 500;
}

.post-actions {
  display: flex;
  gap: 10px;
}

.action-btn {
  color: #2d5016;
  font-size: 14px;
  font-weight: 500;
  transition: all 0.3s ease;
}

.action-btn:hover {
  color: #90ee90;
  transform: translateX(3px);
}

/* 帖子详情页面样式 */
.post-detail-header {
  margin: 20px 0;
  display: flex;
  justify-content: flex-start;
}

.back-to-forum-btn {
  background: rgba(144, 238, 144, 0.2);
  border: 2px solid rgba(144, 238, 144, 0.4);
  border-radius: 20px;
  padding: 12px 24px;
  color: #2d5016;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  font-family: 'Lora', serif;
  backdrop-filter: blur(10px);
}

.back-to-forum-btn:hover {
  background: rgba(144, 238, 144, 0.3);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(45, 80, 22, 0.15);
}

.post-detail-main {
  background: rgba(255, 255, 255, 0.98);
  border-radius: 20px;
  padding: 30px;
  margin-bottom: 30px;
  border: 2px solid rgba(144, 238, 144, 0.2);
  box-shadow: 0 15px 40px rgba(45, 80, 22, 0.08);
  position: relative;
  overflow: hidden;
}

.post-detail-main::before {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  background: linear-gradient(45deg, 
    #90ee90 0%, 
    #98fb98 25%, 
    #f0fff0 50%, 
    #98fb98 75%, 
    #90ee90 100%);
  border-radius: 22px;
  z-index: -1;
  animation: borderGlow 6s ease-in-out infinite;
}

.post-detail-header-info {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 25px;
  padding-bottom: 20px;
  border-bottom: 2px solid rgba(144, 238, 144, 0.2);
}

.post-author-section {
  display: flex;
  align-items: center;
  gap: 15px;
}

.post-author-avatar {
  padding: 8px;
  background: linear-gradient(135deg, rgba(144, 238, 144, 0.2), rgba(240, 255, 240, 0.6));
  border-radius: 50%;
  border: 2px solid rgba(144, 238, 144, 0.3);
}

.post-author-details h2.post-author-name {
  margin: 0;
  font-size: 22px;
  color: #2d5016;
  font-weight: 700;
  font-family: 'Playfair Display', serif;
}

.post-publish-time {
  color: #666;
  font-size: 14px;
  font-style: italic;
}

.post-stats-section {
  display: flex;
  gap: 15px;
  align-items: center;
}

.stat-badge {
  display: flex;
  align-items: center;
  background: rgba(144, 238, 144, 0.15);
  padding: 8px 16px;
  border-radius: 20px;
  border: 1px solid rgba(144, 238, 144, 0.3);
  color: #2d5016;
  font-weight: 500;
  font-size: 14px;
  transition: all 0.3s ease;
}

.stat-badge:hover {
  background: rgba(144, 238, 144, 0.25);
  transform: translateY(-2px);
}

.post-content-section {
  margin-top: 20px;
}

.post-detail-title {
  font-size: 28px;
  color: #2d5016;
  font-weight: 700;
  margin-bottom: 20px;
  font-family: 'Playfair Display', serif;
  line-height: 1.3;
}

.post-detail-content {
  font-size: 16px;
  line-height: 1.8;
  color: #444;
  background: rgba(240, 255, 240, 0.3);
  padding: 25px;
  border-radius: 15px;
  border-left: 4px solid #90ee90;
  font-family: 'Lora', serif;
}

/* 回复区域样式 */
.replies-section {
  margin-top: 30px;
}

.replies-title {
  display: flex;
  align-items: center;
  font-size: 22px;
  color: #2d5016;
  font-weight: 600;
  margin-bottom: 25px;
  font-family: 'Playfair Display', serif;
}

.replies-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.reply-card {
  display: flex;
  background: rgba(255, 255, 255, 0.95);
  border-radius: 15px;
  padding: 20px;
  border: 1px solid rgba(144, 238, 144, 0.2);
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
}

.reply-card::before {
  content: '';
  position: absolute;
  top: -1px;
  left: -1px;
  right: -1px;
  bottom: -1px;
  background: linear-gradient(45deg, 
    transparent 0%, 
    rgba(144, 238, 144, 0.1) 50%, 
    transparent 100%);
  border-radius: 16px;
  z-index: -1;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.reply-card:hover::before {
  opacity: 1;
}

.reply-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(45, 80, 22, 0.1);
}

.reply-index {
  background: linear-gradient(135deg, #90ee90, #2d5016);
  color: white;
  width: 35px;
  height: 35px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 14px;
  margin-right: 20px;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(45, 80, 22, 0.2);
}

.reply-content-wrapper {
  flex: 1;
}

.reply-author-info {
  display: flex;
  align-items: center;
  margin-bottom: 12px;
  gap: 8px;
}

.reply-author-name {
  font-weight: 600;
  color: #2d5016;
  font-size: 16px;
}

.reply-time {
  color: #888;
  font-size: 13px;
  font-style: italic;
}

.reply-content {
  color: #444;
  font-size: 15px;
  line-height: 1.6;
  font-family: 'Lora', serif;
}

.no-replies {
  text-align: center;
  padding: 60px 20px;
  color: #666;
  background: rgba(240, 255, 240, 0.3);
  border-radius: 20px;
  border: 2px dashed rgba(144, 238, 144, 0.3);
}

.no-replies p {
  margin: 0;
  font-size: 16px;
  font-style: italic;
}

/* 回复输入区域样式 */
.reply-input-section {
  margin-top: 40px;
  background: rgba(255, 255, 255, 0.98);
  border-radius: 20px;
  padding: 30px;
  border: 2px solid rgba(144, 238, 144, 0.2);
  position: relative;
  overflow: hidden;
}

.reply-input-section::before {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  background: linear-gradient(45deg, 
    #90ee90 0%, 
    #98fb98 25%, 
    #f0fff0 50%, 
    #98fb98 75%, 
    #90ee90 100%);
  border-radius: 22px;
  z-index: -1;
  animation: borderGlow 5s ease-in-out infinite;
}

.reply-input-title {
  color: #2d5016;
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 20px;
  font-family: 'Playfair Display', serif;
}

.reply-input-wrapper {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.reply-textarea {
  width: 100%;
  border: 2px solid rgba(144, 238, 144, 0.3);
  border-radius: 15px;
  padding: 20px;
  font-size: 15px;
  font-family: 'Lora', serif;
  line-height: 1.6;
  background: rgba(240, 255, 240, 0.2);
  resize: vertical;
  min-height: 120px;
  transition: all 0.3s ease;
  box-sizing: border-box;
}

.reply-textarea:focus {
  outline: none;
  border-color: #90ee90;
  background: rgba(240, 255, 240, 0.4);
  box-shadow: 0 0 0 3px rgba(144, 238, 144, 0.2);
}

.reply-textarea::placeholder {
  color: #999;
  font-style: italic;
}

.reply-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.reply-tips {
  color: #666;
  font-size: 14px;
  font-style: italic;
}

.submit-reply-btn {
  background: linear-gradient(135deg, #90ee90, #2d5016);
  color: white;
  border: none;
  border-radius: 20px;
  padding: 12px 30px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  font-family: 'Lora', serif;
  box-shadow: 0 6px 20px rgba(45, 80, 22, 0.2);
}

.submit-reply-btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 30px rgba(45, 80, 22, 0.3);
  background: linear-gradient(135deg, #7dd87d, #1a4a1a);
}

.submit-reply-btn:active {
  transform: translateY(-1px);
}

/* 发布页面专用样式 */
.publish-text-rain {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  overflow: hidden;
  z-index: 1;
}

.publish-text-rain .text-drop {
  position: absolute;
  font-size: 16px;
  font-weight: 600;
  animation: publishTextFall linear infinite;
  opacity: 0.7;
  filter: drop-shadow(0 2px 4px rgba(144, 238, 144, 0.3));
  font-family: 'Lora', serif;
}

@keyframes publishTextFall {
  0% {
    transform: translateY(-100vh) rotate(0deg);
    opacity: 0;
  }
  10% {
    opacity: 0.8;
  }
  90% {
    opacity: 0.8;
  }
  100% {
    transform: translateY(100vh) rotate(360deg);
    opacity: 0;
  }
}

.publish-form-container {
  max-width: 900px;
  margin: 0 auto;
}

.publish-form-advanced {
  background: rgba(255, 255, 255, 0.98);
  border-radius: 25px;
  padding: 40px;
  border: 2px solid rgba(144, 238, 144, 0.2);
  position: relative;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(45, 80, 22, 0.12);
}

.publish-form-advanced::before {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  background: linear-gradient(45deg, 
    #90ee90 0%, 
    #98fb98 25%, 
    #f0fff0 50%, 
    #98fb98 75%, 
    #90ee90 100%);
  border-radius: 27px;
  z-index: -1;
  animation: borderGlow 5s ease-in-out infinite;
}

.form-section {
  margin-bottom: 35px;
  padding: 25px;
  background: rgba(240, 255, 240, 0.2);
  border-radius: 20px;
  border: 1px solid rgba(144, 238, 144, 0.2);
  transition: all 0.3s ease;
}

.form-section:hover {
  background: rgba(240, 255, 240, 0.3);
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(45, 80, 22, 0.1);
}

.section-header {
  display: flex;
  align-items: center;
  margin-bottom: 20px;
  padding-bottom: 15px;
  border-bottom: 2px solid rgba(144, 238, 144, 0.2);
}

.section-header h3 {
  color: #2d5016;
  font-size: 20px;
  font-weight: 600;
  margin: 0;
  font-family: 'Playfair Display', serif;
}

.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 25px;
}

.form-field {
  display: flex;
  flex-direction: column;
  margin-bottom: 20px;
}

.form-field label {
  color: #2d5016;
  font-weight: 600;
  margin-bottom: 8px;
  font-size: 16px;
  display: flex;
  align-items: center;
  font-family: 'Lora', serif;
}

.select-wrapper {
  position: relative;
}

.modern-select {
  width: 100%;
  padding: 15px 20px;
  border: 2px solid rgba(144, 238, 144, 0.3);
  border-radius: 15px;
  font-size: 16px;
  background: rgba(255, 255, 255, 0.9);
  color: #2d5016;
  transition: all 0.3s ease;
  appearance: none;
  cursor: pointer;
  font-family: 'Lora', serif;
}

.modern-select:focus {
  outline: none;
  border-color: #90ee90;
  background: rgba(255, 255, 255, 1);
  box-shadow: 0 0 0 3px rgba(144, 238, 144, 0.2);
  transform: translateY(-2px);
}

.modern-select::after {
  content: '▼';
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  color: #90ee90;
  pointer-events: none;
}

.modern-input {
  width: 100%;
  padding: 15px 20px;
  border: 2px solid rgba(144, 238, 144, 0.3);
  border-radius: 15px;
  font-size: 16px;
  background: rgba(255, 255, 255, 0.9);
  color: #2d5016;
  transition: all 0.3s ease;
  font-family: 'Lora', serif;
  box-sizing: border-box;
}

.modern-input:focus {
  outline: none;
  border-color: #90ee90;
  background: rgba(255, 255, 255, 1);
  box-shadow: 0 0 0 3px rgba(144, 238, 144, 0.2);
  transform: translateY(-2px);
}

.modern-textarea {
  width: 100%;
  padding: 15px 20px;
  border: 2px solid rgba(144, 238, 144, 0.3);
  border-radius: 15px;
  font-size: 16px;
  background: rgba(255, 255, 255, 0.9);
  color: #2d5016;
  transition: all 0.3s ease;
  resize: vertical;
  min-height: 120px;
  font-family: 'Lora', serif;
  line-height: 1.6;
  box-sizing: border-box;
}

.modern-textarea:focus {
  outline: none;
  border-color: #90ee90;
  background: rgba(255, 255, 255, 1);
  box-shadow: 0 0 0 3px rgba(144, 238, 144, 0.2);
  transform: translateY(-2px);
}

/* 文件上传区域 */
.file-upload-area {
  border: 3px dashed rgba(144, 238, 144, 0.4);
  border-radius: 20px;
  padding: 40px;
  text-align: center;
  background: rgba(240, 255, 240, 0.3);
  transition: all 0.3s ease;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}

.file-upload-area:hover {
  border-color: #90ee90;
  background: rgba(240, 255, 240, 0.5);
  transform: translateY(-3px);
  box-shadow: 0 10px 30px rgba(45, 80, 22, 0.15);
}

/* 拖拽上传状态样式 */
.file-upload-area.drag-over {
  border-color: #2d5016 !important;
  background: rgba(144, 238, 144, 0.2) !important;
  transform: translateY(-5px) scale(1.02);
  box-shadow: 
    0 15px 40px rgba(45, 80, 22, 0.25),
    0 0 0 3px rgba(144, 238, 144, 0.3);
  animation: dragPulse 1.5s ease-in-out infinite;
}

.file-upload-area.drag-over .upload-main-text {
  color: #2d5016 !important;
  font-weight: 700;
  transform: scale(1.05);
}

.file-upload-area.drag-over .upload-sub-text {
  color: #1a5c1a !important;
  font-weight: 600;
}

@keyframes dragPulse {
  0%, 100% {
    box-shadow: 
      0 15px 40px rgba(45, 80, 22, 0.25),
      0 0 0 3px rgba(144, 238, 144, 0.3);
  }
  50% {
    box-shadow: 
      0 20px 50px rgba(45, 80, 22, 0.35),
      0 0 0 5px rgba(144, 238, 144, 0.4);
  }
}

/* 拖拽时的全局遮罩效果 */
.file-upload-area.drag-over::after {
  content: '';
  position: absolute;
  top: -5px;
  left: -5px;
  right: -5px;
  bottom: -5px;
  border: 3px dashed #2d5016;
  border-radius: 25px;
  background: rgba(144, 238, 144, 0.1);
  animation: dashRotate 2s linear infinite;
  pointer-events: none;
}

@keyframes dashRotate {
  0% {
    border-color: #2d5016;
    transform: rotate(0deg);
  }
  25% {
    border-color: #90ee90;
  }
  50% {
    border-color: #2d5016;
    transform: rotate(180deg);
  }
  75% {
    border-color: #90ee90;
  }
  100% {
    border-color: #2d5016;
    transform: rotate(360deg);
  }
}

/* 文件上传区域增强过渡效果 */
.file-upload-area {
  position: relative;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.file-upload-label {
  transition: all 0.3s ease;
  z-index: 10;
  position: relative;
}

.upload-main-text,
.upload-sub-text {
  transition: all 0.3s ease;
}

/* 防止拖拽时的默认行为 */
.file-upload-area * {
  pointer-events: none;
}

.file-upload-area label {
  pointer-events: auto;
}

.file-upload-area input {
  pointer-events: auto;
}

/* 文件上传隐藏输入框 */
.file-input-hidden {
  display: none;
}

.file-upload-label {
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: pointer;
  padding: 20px;
  border-radius: 15px;
  transition: all 0.3s ease;
}

.upload-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.upload-main-text {
  font-size: 18px;
  font-weight: 600;
  color: #2d5016;
  transition: all 0.3s ease;
  font-family: 'Playfair Display', serif;
}

.upload-sub-text {
  font-size: 14px;
  color: #4a7c59;
  font-style: italic;
  transition: all 0.3s ease;
  text-align: center;
  font-family: 'Lora', serif;
}

/* 上传进度区域样式 */
.upload-progress-section {
  margin: 30px 0;
  padding: 25px;
  background: rgba(144, 238, 144, 0.1);
  border-radius: 20px;
  border: 2px solid rgba(144, 238, 144, 0.3);
  animation: progressGlow 2s ease-in-out infinite;
}

@keyframes progressGlow {
  0%, 100% {
    border-color: rgba(144, 238, 144, 0.3);
    box-shadow: 0 0 10px rgba(144, 238, 144, 0.1);
  }
  50% {
    border-color: rgba(144, 238, 144, 0.5);
    box-shadow: 0 0 20px rgba(144, 238, 144, 0.2);
  }
}

.progress-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 15px;
  font-family: 'Lora', serif;
  font-weight: 600;
  color: #2d5016;
  font-size: 16px;
}

.progress-bar {
  width: 100%;
  height: 12px;
  background: rgba(255, 255, 255, 0.8);
  border-radius: 10px;
  overflow: hidden;
  border: 2px solid rgba(144, 238, 144, 0.3);
  position: relative;
}

.progress-fill {
  height: 100%;
  background: linear-gradient(90deg, 
    #90ee90 0%, 
    #98fb98 25%, 
    #2d5016 50%, 
    #98fb98 75%, 
    #90ee90 100%);
  border-radius: 8px;
  transition: width 0.3s ease;
  position: relative;
  animation: progressShine 2s ease-in-out infinite;
}

@keyframes progressShine {
  0% {
    background-position: -100% 0;
  }
  100% {
    background-position: 100% 0;
  }
}

.progress-fill::after {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, 
    transparent 0%, 
    rgba(255, 255, 255, 0.4) 50%, 
    transparent 100%);
  animation: progressShineEffect 2s ease-in-out infinite;
}

@keyframes progressShineEffect {
  0% {
    left: -100%;
  }
  100% {
    left: 100%;
  }
}

/* 表单提交区域样式 */
.form-submit-section {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  margin: 40px auto;
  padding: 30px;
  background: rgba(240, 255, 240, 0.3);
  border-radius: 20px;
  border: 2px dashed rgba(144, 238, 144, 0.4);
  position: relative;
  overflow: hidden;
  max-width: 400px;
}

.form-submit-section::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(144, 238, 144, 0.1) 0%, transparent 70%);
  animation: submitAreaFloat 8s ease-in-out infinite;
  pointer-events: none;
}

@keyframes submitAreaFloat {
  0%, 100% {
    transform: translate(-50%, -50%) rotate(0deg);
  }
  50% {
    transform: translate(-50%, -50%) rotate(180deg);
  }
}

/* 发布提交按钮样式 */
.publish-submit-btn {
  background: linear-gradient(135deg, #2d5016 0%, #4a7c59 25%, #90ee90 50%, #4a7c59 75%, #2d5016 100%);
  background-size: 300% 300%;
  color: white;
  border: none;
  padding: 18px 45px;
  font-size: 18px;
  font-weight: 600;
  border-radius: 25px;
  cursor: pointer;
  transition: all 0.4s ease;
  position: relative;
  overflow: hidden;
  font-family: 'Playfair Display', serif;
  letter-spacing: 1px;
  box-shadow: 
    0 8px 25px rgba(45, 80, 22, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
  animation: buttonGradient 3s ease-in-out infinite;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 180px;
  margin: 0 auto;
  z-index: 10;
}

.publish-submit-btn::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, 
    transparent 0%, 
    rgba(255, 255, 255, 0.3) 50%, 
    transparent 100%);
  transition: left 0.6s ease;
}

.publish-submit-btn:hover::before {
  left: 100%;
}

.publish-submit-btn:hover {
  transform: translateY(-3px) scale(1.05);
  box-shadow: 
    0 12px 35px rgba(45, 80, 22, 0.4),
    0 0 0 3px rgba(144, 238, 144, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.3);
  background-position: 100% 100%;
}

.publish-submit-btn:active {
  transform: translateY(-1px) scale(1.02);
  transition: all 0.1s ease;
}

.publish-submit-btn:disabled {
  opacity: 0.7;
  cursor: not-allowed;
  transform: none;
  animation: none;
}

.publish-submit-btn:disabled:hover {
  transform: none;
  box-shadow: 0 8px 25px rgba(45, 80, 22, 0.3);
}

@keyframes buttonGradient {
  0%, 100% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
}

/* 加载动画样式 */
.loading-spinner {
  width: 20px;
  height: 20px;
  border: 3px solid rgba(255, 255, 255, 0.3);
  border-top: 3px solid white;
  border-radius: 50%;
  animation: loadingSpin 1s linear infinite;
  margin-right: 12px;
}

@keyframes loadingSpin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

/* 提交提示样式 */
.submit-tips {
  margin: 20px auto 0;
  color: #4a7c59;
  font-size: 14px;
  font-style: italic;
  padding: 15px;
  background: rgba(144, 238, 144, 0.1);
  border-radius: 15px;
  border: 1px solid rgba(144, 238, 144, 0.2);
  font-family: 'Lora', serif;
  line-height: 1.5;
  position: relative;
  overflow: hidden;
  text-align: center;
  max-width: 350px;
}

.submit-tips::before {
  content: '';
  position: absolute;
  top: -2px;
  left: -100%;
  width: 100%;
  height: calc(100% + 4px);
  background: linear-gradient(90deg, 
    transparent 0%, 
    rgba(144, 238, 144, 0.2) 50%, 
    transparent 100%);
  animation: tipShine 4s ease-in-out infinite;
}

@keyframes tipShine {
  0%, 80%, 100% {
    left: -100%;
  }
  10%, 70% {
    left: 100%;
  }
}

/* 响应式设计 */
@media (max-width: 768px) {
  .form-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  
  .publish-form-advanced {
    padding: 25px;
    margin: 20px;
  }
  
  .file-upload-area {
    padding: 30px 20px;
  }
  
  .upload-main-text {
    font-size: 16px;
  }
  
  .upload-sub-text {
    font-size: 12px;
  }
  
  .publish-submit-btn {
    padding: 15px 35px;
    font-size: 16px;
    min-width: 160px;
  }
  
  .form-submit-section {
    padding: 20px;
    margin-top: 30px;
  }
}
