修改前端页面样式,工作进度:80%
Change-Id: I3c15ec6bc7eb033354f585a28cab12cb74aca79c
diff --git a/front/src/SharedStyles.css b/front/src/SharedStyles.css
new file mode 100644
index 0000000..730a76e
--- /dev/null
+++ b/front/src/SharedStyles.css
@@ -0,0 +1,1419 @@
+/* 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;
+ }
+}