/* color palette from <https://github.com/vuejs/theme> */
:root {
  --vt-c-white: #ffffff;
  --vt-c-white-soft: #f8f8f8;
  --vt-c-white-mute: #f2f2f2;

  --vt-c-black: #181818;
  --vt-c-black-soft: #222222;
  --vt-c-black-mute: #282828;

  --vt-c-indigo: #2c3e50;

  --vt-c-divider-light-1: rgba(60, 60, 60, 0.29);
  --vt-c-divider-light-2: rgba(60, 60, 60, 0.12);
  --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65);
  --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48);
  --vt-c-text-light-1: var(--vt-c-indigo);
  --vt-c-text-light-2: rgba(60, 60, 60, 0.66);
  --vt-c-text-dark-1: var(--vt-c-white);
  --vt-c-text-dark-2: rgba(235, 235, 235, 0.64);
  --vt-c-common: #33B9DC;
  --p-select-option-padding: 2px 0px !important;
  --p-select-option-selected-focus-color: #33B9DC !important;
  --p-select-option-selected-focus-background: #ffffff !important;
  --p-select-option-selected-background: #ffffff !important;
  --p-select-option-selected-color: #33B9DC !important;
  --p-textarea-focus-border-color: #33B9DC !important;
  --p-form-field-focus-border-color:  #33B9DC !important;

  --p-inputtext-focus-border-color: #33B9DC !important;
  --p-button-primary-hover-background: #33B9DC !important;
  --p-button-primary-active-background: #33B9DC !important;
  --p-toggleswitch-checked-background: #33B9DC !important;
}
@media (prefers-color-scheme: dark) {
  /* 仅在夜间模式下覆盖 PrimeVue Textarea 相关变量（避免影响非夜间模式） */
  :root {
    --p-textarea-color: #212529 !important;
    --p-textarea-placeholder-color: #6c757d !important;
  }
}
/* semantic color variables for this project */
:root {
  --color-background: var(--vt-c-white);
  --color-background-soft: var(--vt-c-white-soft);
  --color-background-mute: var(--vt-c-white-mute);

  --color-border: var(--vt-c-divider-light-2);
  --color-border-hover: var(--vt-c-divider-light-1);

  --color-heading: var(--vt-c-text-light-1);
  --color-text: var(--vt-c-text-light-1);

  --section-gap: 160px;
  --conmmon-color: var(--vt-c-common);
}
/* Dark mode semantic variables */
.dark-mode {
  --color-background: var(--vt-c-black);
  --color-background-soft: var(--vt-c-black-soft);
  --color-background-mute: var(--vt-c-black-mute);

  --color-border: var(--vt-c-divider-dark-2);
  --color-border-hover: var(--vt-c-divider-dark-1);

  --color-heading: var(--vt-c-text-dark-1);
  --color-text: var(--vt-c-text-dark-1);
}
/* 全局深色模式样式细节优化 */
.dark-mode body {
  background-color: var(--color-background);
  color: var(--color-text);
}
/* 滚动条优化 */
.dark-mode ::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
.dark-mode ::-webkit-scrollbar-track {
  background: var(--vt-c-black);
}
.dark-mode ::-webkit-scrollbar-thumb {
  background: #333;
  border-radius: 4px;
}
.dark-mode ::-webkit-scrollbar-thumb:hover {
  background: #444;
}
/* 输入框优化 */
.dark-mode input,
.dark-mode textarea {
  background-color: #1e1e1e !important;
  color: #eee !important;
  border-color: #333 !important;
}
/* 卡片和弹出层优化 */
.dark-mode .p-card,
.dark-mode .p-dialog,
.dark-mode .p-overlaypanel {
  background-color: #1e1e1e !important;
  color: #eee !important;
  border-color: #333 !important;
}
.dark-mode .p-divider {
  border-color: #333 !important;
}
html {
  color-scheme: light dark;
}
body {
  color-scheme: light dark;
}
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  font-weight: normal;
}
body {
  min-height: 100vh;
  color: var(--color-text);
  background: var(--color-background);
  transition:
    color 0.5s,
    background-color 0.5s;
  line-height: 1.6;
  font-family:
    Inter,
    -apple-system,
    BlinkMacSystemFont,
    'Segoe UI',
    Roboto,
    Oxygen,
    Ubuntu,
    Cantarell,
    'Fira Sans',
    'Droid Sans',
    'Helvetica Neue',
    sans-serif;
  font-size: 15px;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media (prefers-color-scheme: dark) {
  /* 全局修复：PrimeVue Textarea 在夜间模式下被主题/暗色变量影响导致文字或 placeholder 变白不可见
   * 这里直接覆盖真实输入元素 .p-inputtextarea（PrimeVue Textarea 内部的 textarea）
   * 目标：全站所有 Textarea 不随夜间模式变化而影响可读性。
   */
  :where(textarea.p-inputtextarea, .p-inputtextarea) {
    color: #212529 !important;
    -webkit-text-fill-color: #212529 !important;
    caret-color: #212529 !important;
  }

  :where(textarea.p-textarea, .p-textarea) {
    color: #6c757d !important;
    -webkit-text-fill-color: #6c757d !important;
    caret-color: #6c757d !important;
  }

  :where(textarea.p-inputtextarea, .p-inputtextarea)::placeholder {
    color: #6c757d !important;
  }

  :where(textarea.p-textarea, .p-textarea)::placeholder {
    color: #6c757d !important;
  }

  /* Safari/旧版浏览器兼容 */
  :where(textarea.p-inputtextarea, .p-inputtextarea)::-webkit-input-placeholder {
    color: #6c757d !important;
  }

  :where(textarea.p-textarea, .p-textarea)::-webkit-input-placeholder {
    color: #6c757d !important;
  }
}
a,
.green {
  text-decoration: none;
  color: hsla(160, 100%, 37%, 1);
  transition: 0.4s;
  padding: 3px;
}
@media (hover: hover) {
  a:hover {
    background-color: hsla(160, 100%, 37%, 0.2);
  }
}

/* 全局样式重置，确保页面铺满浏览器 */
html,
body {
  height: 100%;
  margin: 0;
  padding: 0;
  overflow-x: hidden;
}
#app {
  min-height: 100vh;
  height: 100vh;
  display: flex;
  flex-direction: column;
}
.language-btn {
  font-size: 0.9rem;
  background-color: #ffffff !important;
  border: none !important;
  border-radius: 6px !important;
}
.language-link {
  background: transparent;
  border: none;
  color: #495057;
  font-size: 0.95rem;
  height: 36px;
  line-height: 36px;
  min-width: 96px; /* same width for zh/en */
  padding: 0 10px;
  border-radius: 6px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.language-link:hover {
  background: rgba(51, 185, 220, 0.08);
  color: #33b9dc;
}
.nav-item {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--color-text);
  text-decoration: none;
  padding: 8px 12px;
  border-radius: 6px;
  transition: all 0.3s ease;
  font-size: 0.9rem;
}
.nav-item:hover {
  color: #33b9dc;
  background: var(--color-background-soft);
}
.nav-item i {
  font-size: 0.9rem;
}
.balance-info {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--color-text);
  font-size: 0.9rem;
}
.balance-info i {
  color: #ffc107;
}
.recharge-btn {
  color: #33b9dc;
  text-decoration: none;
  font-size: 0.8rem;
  padding: 4px 8px;
  border-radius: 4px;
  transition: all 0.3s ease;
}
.recharge-btn:hover {
  background: rgba(51, 185, 220, 0.1);
}
.login-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  background: #33b9dc;
  color: white;
  text-decoration: none;
  padding: 8px 16px;
  border-radius: 6px;
  font-size: 0.9rem;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(51, 185, 220, 0.3);
}
.login-btn:hover {
  background: #2aa3c4;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(51, 185, 220, 0.4);
}

/* 用户菜单样式 */
.user-menu {
  display: flex;
  align-items: center;
  gap: 12px;
}
.user-name {
  color: var(--color-text);
  font-size: 0.9rem;
  font-weight: 500;
}
.logout-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  background: #dc3545;
  color: white;
  border: none;
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 0.9rem;
  cursor: pointer;
  transition: all 0.3s ease;
}
.logout-btn:hover {
  background: #c82333;
  transform: translateY(-1px);
}
.user-info-section {
  padding: 8px 0;
}
.vip-expiry-hint {
  margin: 4px 16px 8px;
  padding: 0;
}
.vip-expiry-text {
  font-size: 12px;
  color: #888;
}
.vip-expiry-text.vip-expiry-warning {
  color: #e53935;
}
.vip-expiry-text.vip-expiry-expired {
  color: #aaa;
}
.dark-mode .vip-expiry-text {
  color: #999;
}
.dark-mode .vip-expiry-text.vip-expiry-warning {
  color: #ff5252;
}
.dark-mode .vip-expiry-text.vip-expiry-expired {
  color: #666;
}
.global-lang-toggle {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 1001;
}

/* 系统消息弹窗 */
.system-message-dialog {
  padding: 8px 4px 4px;
}
.system-message-title-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}
.system-message-icon {
  font-size: 22px;
  line-height: 1;
}
.system-message-title {
  font-size: 20px;
  font-weight: 600;
  color: #1a1a1a;
  line-height: 1.4;
}
.system-message-date {
  font-size: 14px;
  color: #999;
  margin-bottom: 16px;
}
.system-message-content {
  font-size: 15px;
  color: #555;
  line-height: 1.8;
  white-space: pre-wrap;
}
.system-message-footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 24px;
}
.system-message-ok {
  background: #33b9dc !important;
  border: 1px solid #33b9dc !important;
  color: #fff !important;
  padding: 10px 28px;
  font-size: 15px;
  border-radius: 6px;
}
.system-message-ok:hover {
  background: #2aa3c4 !important;
  border-color: #2aa3c4 !important;
}

/* 系统消息入口（与账号按钮布局一致） */
.system-message-toggle-btn {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  border: none;
  cursor: pointer;
  color: #666;
  border-radius: 6px;
  transition: background 0.2s, color 0.2s;
  position: relative;
}
.system-message-toggle-btn:hover {
  background: rgba(51, 185, 220, 0.1);
  color: #33b9dc;
}
.dark-mode .system-message-toggle-btn {
  color: #ccc;
}
.system-message-icon-img {
  width: 16px;
  height: 16px;
  object-fit: contain;
  flex-shrink: 0;
}
.system-message-dot {
  position: absolute;
  right: 3px;
  top: 3px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #ef4444;
  box-shadow: 0 0 0 2px #fff;
}
.theme-toggle-container {
  padding-left: 8px; /* 与账号图标垂直对齐 */
}
.theme-toggle-btn {
  width: 32px !important;
  height: 32px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
  border: none !important;
  cursor: pointer;
  padding: 0 !important;
  color: #666;
  border-radius: 50%;
  transition: background 0.2s;
}
.theme-toggle-btn:hover {
  background: rgba(51, 185, 220, 0.1) !important;
  color: #33b9dc;
}
.dark-mode .theme-toggle-btn {
  color: #ccc;
}
.sidebar.collapsed .theme-toggle-container {
  padding-left: 0;
  display: flex;
  justify-content: center;
}

/* 折叠态：底部按钮与导航项保持一致 */
.sidebar.collapsed .system-message-toggle-btn,
.sidebar.collapsed .account-trigger-btn {
  justify-content: center;
  padding: 8px 0 8px 14px;
}
.theme-options {
  min-width: 150px;
}
.theme-option {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 16px;
  cursor: pointer;
  transition: background 0.2s;
}
.theme-option:hover {
  background: rgba(51, 185, 220, 0.08);
}
.theme-option.active {
  color: #33b9dc;
}
.ml-auto {
  margin-left: auto;
}

/* 深色模式下的侧边栏背景 */
.dark-mode .sidebar {
  background: var(--vt-c-black-soft);
  border-right: 1px solid var(--vt-c-divider-dark-2);
}
.dark-mode .sidebar-nav .nav-item {
  color: #ccc;
}
.dark-mode .sidebar-nav .nav-item:hover,
.dark-mode .sidebar-nav .nav-item.active {
  background: rgba(51, 185, 220, 0.2);
  color: #33b9dc;
}


/* 主要内容容器 */
.main-container {
  flex: 1;
  display: flex;
  min-height: 0;
  /* 重要：允许flex子元素收缩 */
  height: 100vh;
}

/* 左侧边栏样式 */
.sidebar {
  position: relative;
  width: 141px;
  /* border-right: 1px solid var(--color-border); */
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  height: 100%;
  overflow-y: auto;
  padding-top: 56px;
}

/* 折叠态 */
.sidebar.collapsed {
  width: 56px;
}
.collapse-toggle {
  position: absolute;
  right: -12px; /* 紧贴侧栏右侧 */
  top: 16px;
  transform: none;
  z-index: 10;
  width: 24px;
  height: 24px;
  border-radius: 12px;
  border: 1px solid #e5e5e5;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #666;
  cursor: pointer;
}
.sidebar.collapsed .nav-group-title span,
.sidebar.collapsed .nav-item span,
.sidebar.collapsed .sidebar-footer .nav-item span {
  display: none;
}
.sidebar.collapsed .sidebar-nav .nav-item {
  padding-left: 14px;
  justify-content: center;
}
.sidebar.collapsed .sidebar-nav .nav-item.sub-item {
  padding-left: 16px;
}

/* 固定 Logo 样式 */
.fixed-logo {
  position: fixed;
  top: 20px;
  left: 20px;
  z-index: 1000;
  background: transparent;
}
.fixed-logo .brand-link {
  display: inline-flex;
  align-items: center;
}
.fixed-logo-img {
  height: 32px;
  max-height: 32px;
  width: auto;
  display: block;
}
.sidebar-nav {
  flex: 1;
  padding: 16px 0 4px;
  padding-top: 20px;
  overflow-y: auto;
}

/* 导航组 */
.nav-group {
  margin-bottom: 8px;
}
.nav-group-title {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #495057;
  font-size: 14px;
  font-weight: 500;
  padding: 8px 16px 8px 17px;
  margin-bottom: 4px;
  position: relative;
  transition: background 0.3s ease, color 0.3s ease;
}
.dark-mode .nav-group-title {
  color: #ccc;
}
.nav-group-title:hover {
  background: var(--color-background-soft);
}
.dark-mode .nav-group-title:hover {
  background: rgba(255, 255, 255, 0.1);
  color: #33b9dc;
}
.dark-mode .nav-group-title .nav-icon,
.dark-mode .nav-item .nav-icon,
.dark-mode .account-trigger-btn .account-icon {
  filter: invert(0.8) brightness(1.2) !important;
}

/* 自定义图标样式 */
.nav-icon {
  width: 16px;
  height: 16px;
  object-fit: contain;
  flex-shrink: 0;
}
.nav-group-title .nav-icon {
  width: 16px;
  height: 16px;
}
.sidebar-nav .nav-item {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #495057;
  text-decoration: none;
  padding: 8px 16px;
  padding-right: 0;
  margin-right: 0;
  margin: 2px 8px;
  margin-left: 1px;
  border-radius: 8px;
  transition: all 0.2s ease;
  font-size: 14px;
  font-weight: 400;
}
.sidebar-nav .nav-item.sub-item {
  padding-left: 32px;
  font-size: 14px;
}
.sidebar-nav .nav-item i {
  font-size: 16px;
  width: 16px;
  text-align: center;
}
.sidebar-nav .nav-item:hover {
  color: #33b9dc;
  background: rgba(51, 185, 220, 0.1);
}
.sidebar-nav .nav-item.active {
  color: #33b9dc;
  background: rgba(51, 185, 220, 0.15);
  font-weight: 500;
}

/* 侧边栏底部 */
.sidebar-footer {
  padding: 4px 16px 16px 0;
  border-top: none;
  position: relative; /* 让折叠按钮在底部容器内绝对定位 */
}

/* 底部所有按钮统一与导航项相同的 margin/padding，确保图标左对齐 */
.system-message-toggle-btn,
.account-trigger-btn,
.sidebar-footer .collapse-nav {
  margin: 2px 8px;
  margin-left: 1px;
  padding: 8px 16px;
  padding-right: 0;
}
.sidebar-footer .nav-item {
  color: #6c757d;
  font-size: 13px;
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 8px 16px 8px 15px;
  margin: 2px 8px;
  margin-left: 1px;
  border-radius: 8px;
  transition: all 0.2s ease;
  background: transparent;
  border: none;
  text-align: left;
  cursor: pointer;
}
.sidebar-footer .nav-item:hover {
  color: #33b9dc;
  background: rgba(51, 185, 220, 0.1);
}

/* 底部折叠按钮样式 */
.sidebar-footer .footer-toggle {
  position: absolute;
  right: -12px; /* 紧贴侧栏右侧 */
  bottom: 16px;
  width: 24px;
  height: 24px;
  border-radius: 12px;
  border: 1px solid #e5e5e5;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #666;
  cursor: pointer;
}
.sidebar.collapsed .sidebar-footer .footer-toggle {
  right: 0; /* 折叠后向右移，避免与内容重叠 */
}

/* 账户按钮样式 */
.account-trigger-btn {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  color: #495057;
  border: none;
  border-radius: 6px;
  font-size: 0.9rem;
  font-weight: 500;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}
.dark-mode .account-trigger-btn {
  background: transparent !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  color: #ccc !important;
  box-shadow: none !important;
}
.dark-mode .account-trigger-btn .account-icon {
  filter: invert(0.8) brightness(1.2) !important;
}
.dark-mode .account-trigger-btn:hover {
  background: rgba(51, 185, 220, 0.2);
  border-color: #33b9dc;
  color: #33b9dc;
}
.account-trigger-btn .account-icon {
  margin-top: 2px;
}
.account-trigger-btn .account-text {
  font-size: 15px;
}
.account-trigger-btn:hover {
  background: rgba(51, 185, 220, 0.1);
  color: #33b9dc;
}
.account-trigger-btn i.pi-chevron-down {
  font-size: 0.8rem;
}

/* 折叠态下：我的账号按钮仅显示图标，文本与下拉箭头隐藏，图标居中 */
.sidebar.collapsed .account-trigger-btn span {
  display: none;
}
.sidebar.collapsed .account-trigger-btn i.pi-chevron-down {
  display: none;
}

/* 折叠态下：底部“收起/展开”菜单项仅显示图标 */
.sidebar.collapsed .sidebar-footer .collapse-nav span {
  display: none;
}
.sidebar-footer .collapse-nav {
  justify-content: flex-start;
}
.sidebar-footer .collapse-nav i {
  font-size: 16px !important;
  color: #63626283;
}
.sidebar.collapsed .sidebar-footer .collapse-nav {
  padding-left: 16px;
}
/* OverlayPanel 样式 - 简化设计 */
.account-overlay-panel {
  min-width: 200px;
  max-width: 250px;
  padding: 0;
}
.account-header {
  padding: 0;
  background: transparent;
  border-bottom: none;
}
.user-info {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  margin-bottom: 0;
}
.user-info i {
  font-size: 16px;
  color: #333333;
}
.user-info span {
  font-size: 0.9rem;
  color: #333333;
  font-weight: 500;
}
.user-email {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 180px;
}
.user-points {
  display: flex;
  cursor: pointer;
  align-items: center;
  gap: 12px;
  color: #333333;
  font-size: 0.9rem;
  font-weight: 500;
  padding: 12px 16px;
}
.user-points i {
  font-size: 16px;
  color: #333333;
}
.dark-mode .account-overlay-panel .user-info i,
.dark-mode .account-overlay-panel .user-info span,
.dark-mode .account-overlay-panel .user-points,
.dark-mode .account-overlay-panel .user-points i,
.dark-mode .account-overlay-panel .menu-item-btn,
.dark-mode .account-overlay-panel .menu-item-btn i {
  color: #ccc !important;
}
.dark-mode .account-overlay-panel .menu-item-btn:hover {
  background: rgba(255, 255, 255, 0.1) !important;
  color: #33b9dc !important;
}
.dark-mode .account-overlay-panel .menu-item-btn:hover i {
  color: #33b9dc !important;
}

/* 会员标签深色模式优化 */
.dark-mode .account-overlay-panel .p-button-text {
  background: #2a2a2a !important;
  color: #33b9dc !important;
  border: 1px solid #444 !important;
}
.menu-section {
  margin-bottom: 0;
}
.menu-section:last-child {
  margin-bottom: 0;
}
.menu-section-title {
  display: none;
}
.menu-item-btn {
  width: 100%;
  justify-content: flex-start;
  padding: 12px 16px;
  margin: 0;
  font-size: 0.9rem;
  color: #333333;
  border-radius: 0;
  background: transparent;
  border: none;
  text-align: left;
  display: flex;
  align-items: center;
  gap: 12px;
}
.menu-item-btn i {
  font-size: 16px;
  color: #333333;
}
.menu-item-btn:hover {
  background: #f5f5f5;
  color: #333333;
}
.menu-item-btn:hover i {
  color: #333333;
}
.logout-btn:hover {
  background: #f5f5f5;
  color: #333333;
}
.info-item {
  display: none;
}
.info-label {
  display: none;
}
.p-button-text {
  color: #33b9dc !important;
}
.nav-group-title .collapse-toggle {
  position: absolute;
  right: 8px;
  top: 50%;
  border-radius: 5px;
  border: 1px solid #ddd;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #666;
}
/* 折叠后将按钮向右移，避免与内容重叠 */
.sidebar.collapsed .nav-group-title .collapse-toggle {
  right: 0;
}
.info-value {
  display: none;
}

/* 主内容区域 */
.main-content {
  flex: 1;
  padding: 20px;
  /* padding-top: 56px; */
  overflow-y: auto;
  border: none;
  min-height: 0;
  position: relative;
  /* 重要：允许flex子元素收缩 */
}

/* 首页右上角按钮 */
.home-top-actions {
  position: absolute;
  top: 20px;
  right: 20px;
  display: flex;
  align-items: center;
  gap: 12px;
  z-index: 10;
}
.home-top-actions .language-btn {
  font-size: 0.9rem;
  background-color: #ffffff !important;
  border: none !important;
  border-radius: 6px !important;
}
.home-top-actions .login-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  background: #33b9dc;
  color: white;
  text-decoration: none;
  padding: 8px 16px;
  border-radius: 6px;
  font-size: 0.9rem;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(51, 185, 220, 0.3);
}
.home-top-actions .login-btn:hover {
  background: #2aa3c4;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(51, 185, 220, 0.4);
}

/* 响应式设计 */
@media (max-width: 1024px) {
.sidebar {
    width: 120px;
}
.sidebar-nav .nav-item span {
    font-size: 12px;
}
.sidebar-logo span {
    display: none;
}
.nav-group-title span {
    display: none;
}
.sidebar-nav .nav-item span {
    display: none;
}
.sidebar-footer .nav-item span {
    display: none;
}
}
@media (max-width: 768px) {
.top-nav {
    padding: 0 15px;
    height: 50px;
}
.left-section,
  .right-section {
    gap: 15px;
}
.nav-item {
    padding: 6px 8px;
    font-size: 0.8rem;
}
.sidebar {
    width: 100px;
}
.sidebar-header {
    padding: 16px 12px;
}
.sidebar-nav .nav-item {
    padding: 10px 12px;
    margin: 2px 6px;
    font-size: 12px;
}
.sidebar-footer {
    padding: 12px;
}
.main-content {
    padding: 15px;
}
}
@media (max-width: 480px) {
.top-nav {
    padding: 0 10px;
}
.left-section,
  .right-section {
    gap: 10px;
}
.nav-item {
    padding: 4px 6px;
    font-size: 0.75rem;
}
.login-btn {
    padding: 6px 12px;
    font-size: 0.8rem;
}
.sidebar {
    width: 80px;
}
.sidebar-header {
    padding: 12px 8px;
}
.sidebar-nav .nav-item {
    padding: 8px 8px;
    margin: 2px 4px;
    font-size: 11px;
}
.sidebar-footer {
    padding: 8px;
}
}
/* 分组折叠切换按钮（创作分组右侧） */
.nav-group-title .group-toggle {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  border-radius: 4px;
  border: none;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #63626283;
  cursor: pointer;
}
.nav-sub {
  padding: 0;
}
.nav-sub .sub-item {
  padding-left: 24px;
}

/* 顶部导航栏样式 */
.home-fixed-logo {
  background: var(--color-background);
  border-bottom: 1px solid var(--color-border);
  box-shadow: none;
  position: sticky;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  flex-shrink: 0;
}
.p-divider-horizontal {
  margin: 3px 0 !important;
}
.p-popover-content {
  padding: 5px 10px !important;
}
.home-fixed-logo .top-nav {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 56px;
  padding: 32px 25px;
}
.home-fixed-logo .brand-link {
  display: inline-flex;
  align-items: center;
  margin-right: 8px;
}
.home-fixed-logo .top-logo {
  height: 32px;
  max-height: 32px;
  width: auto;
  display: block;
}
.home-fixed-logo .home-top-actions {
  position: unset;
}

/* 路由过渡动画：左右滑动（更明显的时长） */
.slide-left-enter-from {
  opacity: 0;
  transform: translateX(20px);
}
.slide-left-enter-active {
  transition:
    opacity 0.4s ease,
    transform 0.4s ease;
}
.slide-left-enter-to {
  opacity: 1;
  transform: translateX(0);
}
.slide-left-leave-from {
  opacity: 1;
  transform: translateX(0);
}
.slide-left-leave-active {
  transition:
    opacity 0.35s ease,
    transform 0.35s ease;
}
.slide-left-leave-to {
  opacity: 0;
  transform: translateX(-20px);
}
.slide-right-enter-from {
  opacity: 0;
  transform: translateX(-20px);
}
.slide-right-enter-active {
  transition:
    opacity 0.4s ease,
    transform 0.4s ease;
}
.slide-right-enter-to {
  opacity: 1;
  transform: translateX(0);
}
.slide-right-leave-from {
  opacity: 1;
  transform: translateX(0);
}
.slide-right-leave-active {
  transition:
    opacity 0.35s ease,
    transform 0.35s ease;
}
.slide-right-leave-to {
  opacity: 0;
  transform: translateX(20px);
}

/* Invite dialog styles */
/* 弹窗整体内容区，稍微上移一点 */
.invite-dialog {
  padding-top: 2px;
}
/* 上半部分信息区：纵向排列并保持间距 */
.invite-info {
  display: flex;
  flex-direction: column;
  margin-top: -5px;
}
.p-dialog-header {
  padding-bottom: 0 !important;
  padding-top: 8px !important;
}

/* 系统消息弹窗头部标题 */
.p-dialog .p-dialog-title {
  font-size: 22px !important;
  font-weight: 600 !important;
  color: #1a1a1a !important;
}
.invite-code-line {
  display: flex;
  align-items: center;
  font-size: 18px;
  color: #222;
  margin-bottom: 8px;
}
.invite-code-line .code-label {
  color: #222;
  font-weight: 500;
}
.invite-code-line .code-text {
  font-weight: 600;
  letter-spacing: 1px;
}
.invite-code-line .copy-btn {
  padding: 0;
}
.invite-code-line .p-button {
  position: absolute;
  right: 0;
}
.invite-link-line {
  display: flex;
  align-items: center;
  font-size: 14px;
  margin-bottom: 5px;
}
.invite-link-line .link-pill {
  display: inline-flex;
  align-items: center;
  height: 30px;
  padding: 0 10px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 4px;
  color: #222;
  font-size: 14px;
  white-space: nowrap;
  border-right: none;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.invite-link-line .link-value {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 8px;
  position: relative;
}
.invite-link-input {
  flex: 1;
  height: 30px;
  border: 1px solid #e5e7eb;
  border-radius: 4px;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
  padding: 0 30px 0 10px;
  background: #fff;
  color: #222;
  font-size: 14px;
  outline: none;
}
.invite-link-input:read-only {
  cursor: default;
}
.copy-btn-line {
  position: absolute !important;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
/* 去掉复制按钮默认的大块背景，仅保留小图标可点击区域 */
.copy-btn-line.p-button {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
}
.copy-btn-line.p-button:hover {
  background: rgba(0, 0, 0, 0.04);
  box-shadow: none;
  border: unset !important;
}
.copy-btn-line .p-button-icon {
  font-size: 14px;
}
.invite-tip {
  margin: 0;
  text-align: right;
  color: #adb5bd;
  font-size: 12px;
}
.invite-records {
  margin-top: 10px;
}
.invite-records .records-header {
  font-size: 14px;
  color: #222;
  margin-bottom: 8px;
  font-weight: 500;
}
/* 记录卡片：圆角更接近示例图 */
.records-card {
  background: #fff;
  border: 1px solid #e9ecef;
  border-radius: 6px;
  padding: 4px 0;
}
.records-loading,
.records-empty {
  padding: 16px;
  color: #868e96;
  font-size: 14px;
  text-align: center;
}
.records-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
/* 邀请记录行：四列布局 */
.record-row {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr 0.6fr 1fr;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  font-size: 13px;
  color: #333;
}
.record-email {
  color: #333;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* 日期列：在自己这一列中水平居中 */
.record-date {
  color: #999;
  justify-self: center;
  font-size: 12px;
}
.record-points {
  color: #666;
  font-weight: 500;
  text-align: right;
}
.record-status {
  font-size: 12px;
  justify-self: end;
  padding: 2px 6px;
  border-radius: 4px;
}
.record-status.rewarded {
  color: #22c55e;
  background: rgba(34, 197, 94, 0.1);
}
.record-status.pending {
  color: #94a3b8;
  background: rgba(148, 163, 184, 0.1);
}
.records-footer {
  display: flex;
  justify-content: center;
  padding-top: 12px;
}
.pager-btn {
  background: transparent;
  border: none;
  color: #495057;
  font-size: 14px;
  cursor: pointer;
  padding: 6px 10px;
  border-radius: 6px;
}
.pager-btn:hover {
  background: #f1f3f5;
  color: #1f2937;
}

/* 字体：移除不存在的本地 @font-face 引用，使用系统字体回退，避免构建失败 */
.home-page[data-v-a8b08aa5] {
  min-height: 100vh;
  margin: 0;
  padding: 0;
  overflow: hidden;
  position: relative;
}
.hero-container[data-v-a8b08aa5] {
  position: relative;
  width: 100vw;
  height: calc(100vh - 56px);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0;
  margin-top: 56px;
}
.background-image[data-v-a8b08aa5] {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-image: url('/assets/bg-BJFB0eUu.jpg');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 1;
}
.content-overlay[data-v-a8b08aa5] {
  position: relative;
  z-index: 2;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  color: white;
  margin-top: -56px;
}
.main-hero-content[data-v-a8b08aa5] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  max-width: 800px;
  margin: 0 auto;
  padding: 40px 20px;
}
.welcome-text[data-v-a8b08aa5] {
  width: 100%;
  height: 35px;
  font-family: 'DotPixel-Fang', Phetsarath, sans-serif;
  font-weight: 400;
  font-size: 24px;
  color: #FFFFFF;
  text-align: center;
  font-style: normal;
  text-transform: none;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
}
.tagline[data-v-a8b08aa5] {
  font-size: 2.5rem;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 10px;
  font-style: Regular;
  width: 100%;
  text-align: center;
  font-family: '方正兰亭粗黑_GB18030 Regular','FZLanTingHei-Heavy', 'FZLanTingHei', 'PingFang SC', 'Microsoft YaHei', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
}
.enter-btn[data-v-a8b08aa5] {
  background: #33B9DC;
  border: none;
  color: white;
  padding: 10px 22px;
  font-size: 20px;
  font-weight: 600;
  border-radius: 3.5px;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 6px 20px rgba(51, 185, 220, 0.4);
  margin-bottom: 24px;
}
.enter-btn[data-v-a8b08aa5]:hover {
  background: #2aa3c4;
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(51, 185, 220, 0.4);
}
.footer-copy[data-v-a8b08aa5] {
  position: fixed;
  left: 50%;
  bottom: 20px;
  transform: translateX(-50%);
  padding: 8px 14px;
  color: #FFFFFF;
  letter-spacing: 0.08em;
  font-size: 14px;
  white-space: nowrap;
}

/* 响应式设计（清理嵌套，保持单层 @media） */
@media (max-width: 1024px) {
.welcome-text[data-v-a8b08aa5] {
    font-size: 24px;
    width: 100%;
    height: 35px;
    text-align: center;
}
.tagline[data-v-a8b08aa5] { font-size: 1.4rem; width: 100%; text-align: center;
}
.footer-copy[data-v-a8b08aa5] { font-size: 13px; bottom: 18px; padding: 7px 12px;
}
}
@media (max-width: 768px) {
.main-hero-content[data-v-a8b08aa5] {
    padding: 30px 15px;
    max-width: 95%;
}
.welcome-text[data-v-a8b08aa5] {
    font-size: 20px;
    width: 100%;
    height: 35px;
    text-align: center;
}
.tagline[data-v-a8b08aa5] { font-size: 1.3rem; width: 100%; text-align: center;
}
.enter-btn[data-v-a8b08aa5] { padding: 18px 40px; font-size: 18px;
}
.footer-copy[data-v-a8b08aa5] { font-size: 12px; bottom: 16px; padding: 6px 10px;
}
}
@media (max-width: 480px) {
.main-hero-content[data-v-a8b08aa5] {
    padding: 20px 10px;
    max-width: 98%;
}
.welcome-text[data-v-a8b08aa5] {
    font-size: 18px;
    width: 100%;
    height: 28px;
    text-align: center;
}
.tagline[data-v-a8b08aa5] { font-size: 1.2rem; width: 100%; text-align: center;
}
.enter-btn[data-v-a8b08aa5] { padding: 16px 32px; font-size: 16px;
}
.footer-copy[data-v-a8b08aa5] { font-size: 11px; bottom: 14px; padding: 6px 10px;
}
}
