/* VIP 会员中心 - 深色主题优先,会员感、控制台感、资产感 */ .root { min-height: 100vh; background: var(--background); color: var(--foreground); } .header { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.5rem; max-width: 1200px; margin: 0 auto; } @media (max-width: 640px) { .header { padding: 0.75rem 1rem; } } .logo { font-size: 1.25rem; font-weight: 700; color: var(--foreground); text-decoration: none; } .logo:hover { color: var(--accent); } .nav { display: flex; align-items: center; gap: 0.75rem; } .loginLink { font-size: 0.9rem; color: var(--muted-foreground); text-decoration: none; } .loginLink:hover { color: var(--accent); } .userBadge { font-size: 0.875rem; color: var(--accent); font-weight: 500; } .vipTag { position: absolute; right: -4px; top: -2px; font-size: 0.6rem; font-weight: 700; padding: 0.1rem 0.35rem; background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%); color: white; border-radius: 4px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); letter-spacing: 0.02em; } .main { max-width: 1200px; margin: 0 auto; padding: 0 1.5rem 2rem; } @media (max-width: 640px) { .main { padding: 0 1rem 1.5rem; } } /* 区块通用 */ .section { padding: 1.5rem 0; } /* PC 首页:Hero + 统计 模块上方 */ .heroSection { padding-top: 2rem; padding-bottom: 1rem; } @media (min-width: 768px) { .heroSection { padding-top: 3rem; padding-bottom: 1.5rem; } .heroSection p:first-of-type { margin-bottom: 1.25rem; } .heroSection h1 { font-size: clamp(2.25rem, 4vw, 3.25rem) !important; margin-bottom: 0.75rem; } .heroSection p:last-of-type { font-size: 1.25rem; max-width: 600px; margin-left: auto; margin-right: auto; } } @media (min-width: 1024px) { .heroSection { padding-top: 4rem; padding-bottom: 2rem; } } .statsSection { padding-top: 2rem; padding-bottom: 2rem; } @media (min-width: 768px) { .statsSection { padding-top: 2.5rem; padding-bottom: 2.5rem; } } @media (min-width: 1024px) { .statsSection { padding-top: 3rem; padding-bottom: 3rem; } } .topicsSection .sectionTitle { margin-bottom: 1.25rem; } @media (min-width: 768px) { .topicsSection { padding-top: 2.5rem; } .topicsSection .sectionTitle { font-size: 1.5rem; margin-bottom: 1.5rem; } } .sectionTitle { font-size: 1.25rem; font-weight: 600; color: var(--foreground); margin: 0 0 1rem; } .sectionDesc { font-size: 0.9rem; color: var(--muted-foreground); margin: 0 0 1rem; line-height: 1.5; } /* 卡片 */ .card { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 1rem 1.25rem; transition: border-color 0.2s, box-shadow 0.2s; } .card:hover { border-color: rgba(245, 158, 11, 0.3); } .freeBadge { font-size: 0.7rem; padding: 0.15rem 0.5rem; border-radius: 9999px; background: var(--muted); color: var(--accent); font-weight: 500; } /* 星球登录信息卡片 */ .loginCard { margin-top: 1.25rem; padding: 1.25rem 1.5rem; background: linear-gradient(135deg, rgba(245, 158, 11, 0.06) 0%, rgba(245, 158, 11, 0.02) 100%); border: 1px solid rgba(245, 158, 11, 0.2); border-radius: 10px; max-width: 380px; } .loginCardTitle { font-size: 0.8rem; font-weight: 600; color: var(--muted-foreground); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 1rem; } .loginCardRow { display: flex; align-items: center; gap: 0.75rem; font-size: 0.9rem; padding: 0.5rem 0; border-bottom: 1px solid var(--border); } .loginCardRow:last-of-type { border-bottom: none; } .loginCardLabel { flex-shrink: 0; width: 2.5em; color: var(--muted-foreground); } .loginCardValue { font-family: ui-monospace, monospace; font-size: 0.9rem; padding: 0.15rem 0.5rem; background: var(--muted); border-radius: 6px; } .loginCardLink { margin-left: auto; font-size: 0.85rem; color: var(--accent); text-decoration: none; } .loginCardLink:hover { text-decoration: underline; } /* 大数字 */ .bigNumber { font-size: 2rem; font-weight: 700; color: var(--accent); line-height: 1.2; } @media (min-width: 640px) { .bigNumber { font-size: 2.5rem; } } .bigNumberLabel { font-size: 0.8rem; color: var(--muted-foreground); margin-top: 0.25rem; } /* 按钮 */ .btnPrimary { display: inline-flex; align-items: center; justify-content: center; padding: 0.75rem 1.75rem; font-size: 1rem; font-weight: 600; color: var(--accent-foreground); background: var(--accent); border: none; border-radius: 12px; cursor: pointer; text-decoration: none; transition: opacity 0.2s, transform 0.15s; } .btnPrimary:hover { opacity: 0.95; transform: translateY(-1px); } .btnSecondary { display: inline-flex; align-items: center; padding: 0.75rem 1.5rem; font-size: 0.95rem; font-weight: 500; color: var(--muted-foreground); background: transparent; border: 1px solid var(--border); border-radius: 12px; text-decoration: none; cursor: pointer; transition: border-color 0.15s, color 0.15s; } .btnSecondary:hover { border-color: var(--accent); color: var(--accent); } .btnLarge { padding: 1rem 2.5rem; font-size: 1.1rem; } /* 资产统计网格 */ .statsGrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; } @media (min-width: 640px) { .statsGrid { grid-template-columns: repeat(4, 1fr); } } .statsGrid4 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; } @media (min-width: 640px) { .statsGrid4 { grid-template-columns: repeat(4, 1fr); } } /* 模块网格 */ .topicGrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; } @media (min-width: 640px) { .topicGrid { grid-template-columns: repeat(4, 1fr); } } .topicCard { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.5rem; padding: 1.25rem 1rem; background: var(--card); border: 1px solid var(--border); border-radius: 12px; text-decoration: none; color: inherit; transition: border-color 0.2s, transform 0.2s; } .topicCardInner { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; width: 100%; } .topicCard:hover { border-color: rgba(245, 158, 11, 0.4); transform: translateY(-2px); } .topicIcon { font-size: 2rem; line-height: 1; } .topicTitle { font-size: 1rem; font-weight: 600; color: var(--foreground); } .topicDesc { font-size: 0.8rem; color: var(--muted-foreground); } .topicLock { position: absolute; top: 0.75rem; right: 0.75rem; font-size: 0.85rem; opacity: 0.85; } /* Loading */ .loading { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; background: var(--background); color: var(--foreground); } .loadingSpinner { width: 40px; height: 40px; border: 3px solid var(--border); border-top-color: var(--accent); border-radius: 50%; animation: spin 0.8s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } }