/* 主题色变量 */
/* :root {
    --primary-color: #3498db; 
    --primary-hover: #2980b9;
    --secondary-color: #f1c40f; 
    --dark-color: #2c3e50; 
    --light-color: #ecf0f1;
    --text-color: #333;
    --text-secondary: #7f8c8d;
    --border-color: #ddd;
  } */
  
    /* --bg-color: #2b2b2b;
    --text-color: #f1f1f1;
    --card-bg: #1e1e1e;
    --border-color: #444444; */

  .container {
    min-height: 100vh;
    background-color: var(--bg-color);
    color: var(--text-color);
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  }
  
  /* 顶部导航栏 */
  .header {
    display: flex;
    align-items: center;
    padding: 15px 30px;
    background-color: solid var(--card-bg);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  }
  
  .logo {
    height: 40px;
    cursor: pointer;
    transition: transform 0.3s;
  }
  
  .logo:hover {
    transform: scale(1.05);
  }
  
  .siteTitle {
    margin: 0 0 0 15px;
    color: var(--text-color);
    font-size: 24px;
  }
  
  /* 主内容区 */
  .mainContent {
    display: flex;
    min-height: calc(100vh - 70px);
    padding: 20px;
    gap: 20px;
  }
  
  /* 左侧用户信息区 */
  .userProfile {
    flex: 2;
    background-color: var(--card-bg);
    border-radius: 10px;
    padding: 25px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
  }
  
  .userHeader {
    display: flex;
    align-items: center;
    margin-bottom: 20px;
  }
  
  .userAvatar {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--primary-color);
    margin-right: 20px;
  }
  
  .userInfo {
    flex: 1;
  }
  
  .username {
    margin: 0 0 5px 0;
    color: var(--text-color);
    font-size: 22px;
  }
  
  .inviteCode {
    color: var(--text-color);
    font-size: 14px;
    margin-bottom: 10px;
  }
  
  .editButton {
    padding: 8px 20px;
    background-color: var(--primary-color);
    color: white;
    border: none;
    border-radius: 20px;
    cursor: pointer;
    font-size: 14px;
    transition: background-color 0.3s;
  }
  
  .editButton:hover {
    background-color: var(--primary-hover);
  }
  
  /* 用户统计 */
  .userStats {
    display: flex;
    justify-content: space-between;
    margin: 25px 0;
    padding: 15px 0;
    border-top: 1px solid var(--border-color);
    border-bottom: 1px solid var(--border-color);
  }
  
  .statItem {
    text-align: center;
    padding: 0 10px;
  }
  
  .statNumber {
    font-size: 22px;
    font-weight: bold;
    color: var(--primary-color);
  }
  
  .statLabel {
    font-size: 14px;
    color: var(--text-secondary);
    margin-top: 5px;
  }
  
  /* 用户数据 */
  .userData {
    background-color: var(--light-color);
    padding: 15px;
    border-radius: 8px;
    margin-bottom: 25px;
  }
  
  .dataItem {
    margin-bottom: 8px;
    font-size: 15px;
  }
  
  .dataItem strong {
    color: var(--primary-color);
  }
  
  /* 作品区 */
  .worksSection {
    margin-top: 30px;
  }
  
  .sectionTitle {
    margin: 0 0 20px 0;
    color: var(--dark-color);
    font-size: 18px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--primary-color);
  }
  
  .workItem {
    padding: 15px;
    margin-bottom: 15px;
    background-color: var(--primary-card);
    border-radius: 8px;
    border-left: 4px solid var(--primary-color);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s, box-shadow 0.3s;
  }
  
  .workItem:hover {
    transform: translateY(-3px);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
  }
  
  .workTitle {
    margin: 0 0 10px 0;
    color: var(--text-color);
    font-size: 16px;
  }
  
  .workMeta {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    color: var(--text-color);
  }
  
  /* 右侧内容区 */
  .rightContent {
    flex: 1;
    min-width: 300px;
    display: flex;
    flex-direction: column;
    gap: 20px;
  }
  
  .petSection, .trafficSection {
    background-color: var(--card-bg);
    border-radius: 10px;
    padding: 20px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
  }
  
  .petContainer {
    background-color: var(--card-bg);
    border-radius: 8px;
    padding: 15px;
    text-align: center;
  }
  
  .petImage {
    max-width: 100%;
    height: auto;
    border-radius: 5px;
  }
  
  .trafficContainer {
    background-color: white;
    border-radius: 8px;
    padding: 10px;
    text-align: center;
    border: 1px solid var(--border-color);
  }
  
  .trafficImage {
    max-width: 100%;
    height: auto;
  }
  
  /* 加载和错误状态 */
  .loading, .error {
    padding: 20px;
    text-align: center;
    color: var(--text-color);
  }
  
  .error {
    color: #e74c3c;
  }