/* 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);
}

/* 动画定义 */
@keyframes backgroundShift {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.7; }
}

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

@keyframes gardenFloat {
  0%, 100% {
    transform: translateY(0px) rotate(0deg);
    opacity: 0.4;
  }
  50% {
    transform: translateY(-15px) rotate(180deg);
    opacity: 0.6;
  }
}

@keyframes userBarFloat {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-3px);
  }
}

@keyframes borderGlow {
  0%, 100% {
    opacity: 0.6;
  }
  50% {
    opacity: 1;
  }
}

@keyframes iconDance {
  0%, 100% {
    transform: scale(1) rotate(0deg);
  }
  25% {
    transform: scale(1.1) rotate(5deg);
  }
  50% {
    transform: scale(1.2) rotate(0deg);
  }
  75% {
    transform: scale(1.1) rotate(-5deg);
  }
}

@keyframes iconPulse {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1);
  }
}

/* 响应式设计 */
@media (max-width: 1200px) {
  .emerald-user-bar {
    width: 440px;
    right: 20px;
  }
  
  .emerald-nav-bar {
    margin: 100px 20px 20px;
    padding: 16px 20px;
    grid-template-columns: repeat(6, 1fr);
  }
  
  .emerald-nav-item {
    min-width: 80px;
    padding: 12px 16px;
  }
}

@media (max-width: 768px) {
  .emerald-user-bar {
    position: relative;
    top: 0;
    right: 0;
    width: 100%;
    margin: 20px 0;
    flex-direction: column;
    gap: 16px;
  }
  
  .emerald-brand-section {
    margin-right: 0;
    justify-content: center;
  }
  
  .emerald-user-stats {
    flex-direction: column;
    gap: 8px;
    width: 100%;
  }
  
  .emerald-nav-bar {
    margin: 20px 10px;
    padding: 16px;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
  }
  
  .emerald-nav-item {
    min-width: 70px;
    padding: 10px 12px;
  }
  
  .emerald-nav-icon {
    font-size: 24px !important;
  }
  
  .emerald-nav-label {
    font-size: 12px;
  }
  
  .emerald-content-section {
    margin: 20px 10px;
    padding: 20px 15px;
  }
  
  .meteor {
    font-size: 14px;
  }
  
  .garden-element {
    font-size: 20px;
  }
  
  .forum-toolbar {
    flex-direction: column;
    gap: 15px;
    padding: 15px 20px;
  }
  
  .search-section {
    width: 100%;
    max-width: none;
  }
  
  .search-input-container {
    max-width: none;
  }
  
  .forum-search-input {
    border-radius: 25px 0 0 25px;
  }
  
  .forum-search-btn {
    border-radius: 0 25px 25px 0;
    padding: 14px 16px;
  }
  
  .forum-post-card {
    padding: 20px;
  }
  
  .post-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
  
  .post-footer {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
}

@media (max-width: 480px) {
  .emerald-nav-bar {
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    padding: 12px;
  }
  
  .emerald-nav-item {
    min-width: 60px;
    padding: 8px 10px;
  }
  
  .emerald-nav-icon {
    font-size: 20px !important;
  }
  
  .emerald-nav-label {
    font-size: 11px;
  }
  
  .emerald-table-section {
    margin: 20px 10px;
    padding: 20px 15px;
  }
  
  .emerald-table th,
  .emerald-table td {
    padding: 10px 12px;
    font-size: 13px;
  }
  
  .forum-toolbar {
    padding: 12px 15px;
  }
  
  .search-section {
    flex-direction: column;
    gap: 10px;
  }
  
  .forum-search-input {
    border-radius: 20px;
    border: 2px solid rgba(144, 238, 144, 0.3);
    border-bottom: none;
  }
  
  .forum-search-btn {
    border-radius: 20px;
    border: 2px solid rgba(144, 238, 144, 0.3);
    border-top: none;
    width: 100%;
  }
  
  .post-detail-title {
    font-size: 24px;
  }
  
  .post-detail-content {
    font-size: 14px;
  }
  
  .reply-textarea {
    padding: 15px;
  }
  
  .submit-reply-btn {
    padding: 10px 20px;
    font-size: 14px;
  }
}
