
    :root {
      --primary-red: #E53935;
      --primary-purple: #7B1FA2;
      --primary-blue: #1565C0;
      --gradient: linear-gradient(135deg, #E53935 0%, #7B1FA2 50%, #1565C0 100%);
      --gradient-light: linear-gradient(135deg, rgba(229,57,53,0.08) 0%, rgba(123,31,162,0.08) 50%, rgba(21,101,192,0.08) 100%);
      --text-primary: #1a1a2e;
      --text-secondary: #6a6a8a;
      --bg-light: #f5f7fb;
      --card-shadow: 0 4px 20px rgba(123, 31, 162, 0.06);
      --radius: 16px;
      --safe-bottom: env(safe-area-inset-bottom);
    }
    
    * { margin: 0; padding: 0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
    
    body {
      font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Helvetica Neue', sans-serif;
      background: var(--bg-light);
      min-height: 100vh;
      padding-bottom: calc(70px + var(--safe-bottom));
      color: var(--text-primary);
      -webkit-font-smoothing: antialiased;
    }
    
    /* SVG基础 */
    svg { display: inline-block; vertical-align: middle; }
    
    /* 渐变导航 */
    .nav {
      background: var(--gradient);
      padding: 14px 20px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      position: sticky;
      top: 0;
      z-index: 100;
    }
    .nav-brand { display: flex; align-items: center; gap: 10px; color: #fff; }
    .nav-logo { width: 34px; height: 34px; background: rgba(255,255,255,0.2); border-radius: 10px; display: flex; align-items: center; justify-content: center; }
    .nav-title { font-size: 17px; font-weight: 600; }
    .nav-tag { background: rgba(255,255,255,0.2); padding: 5px 14px; border-radius: 20px; font-size: 12px; color: #fff; }
    
    /* 英雄区 */
    .head {
      background: var(--gradient);
      padding: 20px 20px 55px;
      text-align: center;
      position: relative;
    }
    .head::after {
      content: '';
      position: absolute;
      bottom: -18px;
      left: 0; right: 0;
      height: 36px;
      background: var(--bg-light);
      border-radius: 50% 50% 0 0;
    }
    .head-logos { display: flex; align-items: center; justify-content: center; margin-bottom: 14px; }
    .head-logo { height: 44px; object-fit: contain; filter: brightness(0) invert(1); }
    .head-sub { color: rgba(255,255,255,0.9); font-size: 18px; letter-spacing: 3px; margin-bottom: 10px; font-weight: 500; }
    .head-title { color: #fff; font-size: 20px; font-weight: 700; margin-bottom: 12px; line-height: 1.4; }
    .head-badge { display: inline-flex; align-items: center; gap: 5px; background: rgba(255,255,255,0.15); padding: 5px 14px; border-radius: 20px; color: #fff; font-size: 12px; border: 1px solid rgba(255,255,255,0.2); }
    .head-info { display: flex; justify-content: center; gap: 24px; margin-top: 14px; color: rgba(255,255,255,0.9); font-size: 13px; }
    .head-info-item { display: flex; align-items: center; gap: 5px; }
    
    /* 内容容器 */
    .container { padding: 0 10px 20px; position: relative; z-index: 1; }
    
    /* 卡片 */
    .card {
      background: #fff;
      border-radius: var(--radius);
      padding: 18px;
      margin-bottom: 14px;
      box-shadow: var(--card-shadow);
    }
    .card-header { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid #f0f2f5; }
    .card-icon { width: 38px; height: 38px; background: var(--gradient); border-radius: 10px; display: flex; align-items: center; justify-content: center; }
    .card-icon svg { width: 20px; height: 20px; fill: #fff; }
    .card-title { font-size: 15px; font-weight: 600; }
    
    /* 首页入口网格 */
    .home-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 12px;
    }
    .home-item {
      background: var(--gradient-light);
      border-radius: 14px;
      padding: 18px 14px;
      text-align: center;
      cursor: pointer;
      transition: transform 0.2s, box-shadow 0.2s;
      border: 1px solid rgba(123,31,162,0.06);
    }
    .home-item:active { transform: scale(0.97); }
    .home-icon { width: 46px; height: 46px; background: var(--gradient); border-radius: 13px; display: flex; align-items: center; justify-content: center; margin: 0 auto 10px; }
    .home-icon svg { width: 24px; height: 24px; fill: #fff; }
    .home-name { font-size: 13px; font-weight: 600; color: var(--text-primary); margin-bottom: 3px; }
    .home-desc { font-size: 11px; color: var(--text-secondary); }
    
    /* 组织机构 - 列表式布局 */
    .org-list { display: flex; flex-direction: column; gap: 8px; }
    .org-item { display: flex; align-items: baseline; background: linear-gradient(135deg, rgba(123,31,162,0.06) 0%, rgba(59,130,246,0.06) 100%); border-radius: 8px; padding: 10px 12px; }
    .org-label { font-size: 11px; color: var(--text-secondary); min-width: 90px; flex-shrink: 0; }
    .org-name { font-size: 12px; font-weight: 600; color: var(--text-primary); word-break: break-all; }
    
    /* 赛事日程时间线 */
    .schedule-day {
      background: var(--gradient-light);
      padding: 10px 14px;
      border-radius: 10px;
      margin-bottom: 14px;
      display: flex;
      align-items: center;
      gap: 8px;
    }
    .schedule-day-icon { font-size: 18px; }
    .schedule-day-text { font-size: 13px; font-weight: 600; color: var(--primary-purple); }
    
    .timeline { position: relative; padding-left: 22px; }
    .timeline::before { content: ''; position: absolute; left: 6px; top: 6px; bottom: 6px; width: 2px; background: linear-gradient(to bottom, var(--primary-red), var(--primary-purple), var(--primary-blue)); border-radius: 1px; }
    .timeline-item { position: relative; padding: 9px 0; border-bottom: 1px solid #f8f8f8; }
    .timeline-item:last-child { border-bottom: none; }
    .timeline-dot { position: absolute; left: -22px; top: 14px; width: 14px; height: 14px; border-radius: 50%; background: var(--gradient); border: 2.5px solid #fff; box-shadow: 0 2px 6px rgba(123,31,162,0.25); }
    .timeline-time { font-size: 11px; color: var(--primary-purple); font-weight: 600; margin-bottom: 2px; }
    .timeline-title { font-size: 13px; font-weight: 500; }
    .timeline-desc { font-size: 11px; color: var(--text-secondary); margin-top: 1px; }
    
    /* VR展示 */
    .vr-card { background: var(--gradient); border-radius: 16px; padding: 18px 16px; display: flex; align-items: center; gap: 14px; cursor: pointer; margin-bottom: 12px; box-shadow: 0 4px 12px rgba(124,58,237,0.25); }
    .vr-icon { width: 48px; height: 48px; background: rgba(255,255,255,0.2); border-radius: 12px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
    .vr-icon svg { width: 24px; height: 24px; fill: #fff; }
    .vr-title { font-size: 15px; font-weight: 600; color: #fff; }
    .vr-desc { font-size: 12px; color: rgba(255,255,255,0.8); margin-top: 2px; }
    
    /* 快速入口按钮 - 横向排列 */
    .quick-btn {
      background: var(--gradient);
      border-radius: 14px;
      padding: 14px 16px;
      cursor: pointer;
      box-shadow: 0 3px 12px rgba(124, 58, 237, 0.25);
      transition: all 0.2s;
      display: flex;
      align-items: center;
      gap: 12px;
    }
    .quick-btn:active { transform: scale(0.98); }
    .quick-btn-icon { width: 42px; height: 42px; background: rgba(255,255,255,0.2); border-radius: 12px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
    .quick-btn-icon svg { fill: #fff; }
    .quick-btn-text { text-align: left; }
    .quick-btn-name { font-size: 14px; font-weight: 600; color: #fff; margin-bottom: 2px; }
    .quick-btn-desc { font-size: 11px; color: rgba(255,255,255,0.8); }
    
    /* 图文直播 */
    .live-banner { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 16px; padding: 14px 16px; margin-bottom: 12px; box-shadow: 0 4px 12px rgba(118,75,162,0.25); }
    
    /* 参赛须知 */
    .notice-item { display: flex; align-items: flex-start; gap: 10px; padding: 10px 0; border-bottom: 1px solid #f5f5f5; }
    .notice-item:last-child { border-bottom: none; }
    .notice-num { width: 20px; height: 20px; background: var(--gradient); border-radius: 6px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 1px; }
    .notice-num span { color: #fff; font-size: 11px; font-weight: 600; }
    .notice-text { font-size: 13px; color: var(--text-secondary); line-height: 1.6; }
    
    /* 服务页入口 */
    .service-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 10px;
    }
    .service-item {
      background: #fff;
      border-radius: 14px;
      padding: 16px 6px;
      text-align: center;
      cursor: pointer;
      border: 1px solid #f0f0f5;
      transition: all 0.2s;
    }
    .service-item:active { transform: scale(0.96); border-color: var(--primary-purple); }
    .service-item.active { background: var(--gradient-light); border-color: var(--primary-purple); }
    .service-icon { width: 42px; height: 42px; background: var(--gradient); border-radius: 12px; display: flex; align-items: center; justify-content: center; margin: 0 auto 8px; }
    .service-icon svg { width: 22px; height: 22px; fill: #fff; }
    .service-name { font-size: 12px; font-weight: 600; color: var(--text-primary); }
    
    /* 服务详情面板 */
    .service-panel { display: none; }
    .service-panel.active { display: block; }
    
    /* 服务Tab导航 */
    .service-tab-bar {
      display: flex;
      gap: 6px;
      padding: 12px 16px;
      background: #fff;
      border-radius: 12px;
    }
    .service-tab {
      flex: 1;
      display: flex;
      flex-direction: column;
      align-items: center;
      padding: 10px 4px;
      border-radius: 10px;
      cursor: pointer;
      transition: all 0.2s;
      background: #f5f5f5;
    }
    .service-tab.active {
      background: var(--gradient);
    }
    .service-tab-icon {
      width: 32px;
      height: 32px;
      border-radius: 8px;
      background: rgba(255,255,255,0.2);
      display: flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 4px;
    }
    .service-tab-icon svg { width: 18px; height: 18px; fill: #fff; }
    .service-tab-text { font-size: 11px; color: rgba(255,255,255,0.8); font-weight: 500; }
    .service-tab:not(.active) .service-tab-icon { background: rgba(0,0,0,0.08); }
    .service-tab:not(.active) .service-tab-icon svg { fill: var(--text-secondary); }
    .service-tab:not(.active) .service-tab-text { color: var(--text-secondary); }

    /* 新版酒店卡片 */
    .hotel-new-card {
      background: #fff;
      border-radius: 16px;
      overflow: hidden;
      margin-bottom: 12px;
      box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    }
    .hotel-new-img {
      height: 140px;
      position: relative;
    }
    .hotel-badge-new {
      position: absolute;
      top: 10px;
      left: 10px;
      background: rgba(255,255,255,0.95);
      padding: 4px 10px;
      border-radius: 20px;
      font-size: 11px;
      font-weight: 600;
      color: #333;
    }
    .hotel-new-body { padding: 14px; }
    .hotel-new-name { font-size: 16px; font-weight: 600; color: var(--text-primary); margin-bottom: 6px; }
    .hotel-new-location { font-size: 12px; color: var(--text-secondary); margin-bottom: 6px; }
    .hotel-new-distance { display: flex; gap: 10px; margin-bottom: 10px; }
    .hotel-new-distance span { font-size: 11px; color: #666; background: #f0f0f0; padding: 2px 8px; border-radius: 4px; }
    .hotel-new-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
    .hotel-tag { font-size: 11px; padding: 3px 8px; border-radius: 6px; }
    .hotel-new-tags .hotel-tag { background: #FFF3E0; color: #E65100; }
    .room-price-row { display: flex; align-items: baseline; gap: 10px; margin-top: 4px; flex-wrap: wrap; }
    .room-price-original { font-size: 12px; color: #aaa; text-decoration: line-through; }
    .room-price-special { font-size: 14px; font-weight: 700; color: #E53935; }

    /* 新版景点卡片 */
    .attraction-new-card {
      background: #fff;
      border-radius: 16px;
      overflow: hidden;
      margin-bottom: 12px;
      box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    }
    .attraction-new-img {
      height: 160px;
      position: relative;
      display: flex;
      align-items: flex-end;
    }
    .attraction-new-tag {
      position: absolute;
      top: 10px;
      left: 10px;
      background: var(--primary-red);
      color: #fff;
      padding: 4px 10px;
      border-radius: 6px;
      font-size: 11px;
      font-weight: 600;
    }
    .attraction-new-info { padding: 12px; color: #fff; }
    .attraction-new-name { font-size: 16px; font-weight: 600; margin-bottom: 4px; }
    .attraction-new-desc { font-size: 12px; opacity: 0.9; margin-bottom: 4px; }
    .attraction-new-dist { font-size: 11px; opacity: 0.8; }
    .attraction-new-tags { display: flex; gap: 6px; padding: 10px 12px; border-top: 1px solid #f0f0f0; }
    .att-tag { font-size: 11px; padding: 3px 10px; background: #f5f5f5; border-radius: 12px; color: #666; }

    /* 新版餐饮卡片 */
    .food-new-card {
      display: flex;
      background: #fff;
      border-radius: 12px;
      overflow: hidden;
      margin-bottom: 10px;
      box-shadow: 0 2px 6px rgba(0,0,0,0.05);
    }
    .food-new-img { width: 90px; height: 90px; flex-shrink: 0; }
    .food-new-body { padding: 12px; flex: 1; }
    .food-new-name { font-size: 14px; font-weight: 600; margin-bottom: 4px; }
    .food-new-desc { font-size: 12px; color: #666; margin-bottom: 8px; }
    .food-new-tags { display: flex; flex-wrap: wrap; gap: 4px; }
    .food-tag { font-size: 10px; padding: 2px 6px; background: #f0f0f0; border-radius: 4px; color: #666; }

    /* 餐饮必吃榜简洁版 */
    .food-header {
      padding: 20px 16px 12px;
      text-align: center;
    }
    .food-title {
      font-size: 18px;
      font-weight: 600;
      color: #333;
    }
    .food-sub {
      font-size: 12px;
      color: #999;
      margin-top: 4px;
    }
    .food-list {
      padding: 0 16px;
    }
    .food-card {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 12px;
      margin-bottom: 10px;
      background: #fff;
      border-radius: 10px;
    }
    .food-img {
      width: 60px;
      height: 60px;
      flex-shrink: 0;
    }
    .food-img svg { width: 100%; height: 100%; }
    .food-info {
      flex: 1;
      min-width: 0;
    }
    .food-name-row {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 8px;
      margin-bottom: 6px;
    }
    .food-name {
      font-size: 14px;
      font-weight: 600;
      color: #333;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .food-score {
      font-size: 12px;
      color: #f39c12;
      flex-shrink: 0;
    }
    .food-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
    }
    .food-tags .food-tag {
      font-size: 10px;
      padding: 2px 8px;
      border-radius: 10px;
      background: #f5f5f5;
      color: #666;
    }
    .food-tags .tag-gold {
      background: linear-gradient(135deg, #ffd700, #ffb800);
      color: #8B4513;
      font-weight: 600;
    }
    .food-tags .tag-distance {
      background: linear-gradient(135deg, #3498db, #2980b9);
      color: #fff;
      font-weight: 500;
    }
    .food-tip-bar {
      text-align: center;
      padding: 14px 16px;
      font-size: 11px;
      color: #bbb;
    }

    /* 新版保险卡片 */
    .insurance-new-card {
      background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
      border-radius: 16px;
      padding: 20px;
      color: #fff;
    }
    .insurance-new-header { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
    .insurance-new-icon {
      width: 48px; height: 48px;
      background: rgba(255,255,255,0.2);
      border-radius: 12px;
      display: flex; align-items: center; justify-content: center;
    }
    .insurance-new-icon svg { width: 28px; height: 28px; fill: #fff; }
    .insurance-new-name { font-size: 15px; font-weight: 600; margin-bottom: 4px; }
    .insurance-new-company { font-size: 11px; opacity: 0.8; }
    .insurance-new-price { display: flex; align-items: baseline; margin-bottom: 4px; }
    .ins-new-sym { font-size: 18px; }
    .ins-new-val { font-size: 36px; font-weight: 700; }
    .ins-new-unit { font-size: 14px; opacity: 0.8; margin-left: 4px; }
    .insurance-new-period { font-size: 12px; opacity: 0.8; margin-bottom: 16px; }
    .insurance-new-actions { display: flex; gap: 10px; margin-top: 16px; }
    .ins-btn { flex: 1; padding: 12px; border-radius: 10px; font-size: 14px; font-weight: 600; cursor: pointer; border: none; }
    .ins-btn-outline { background: rgba(255,255,255,0.2); color: #fff; }
    .ins-btn-fill { background: #fff; color: #764ba2; }

    /* 交通面板 */
    .traffic-venue-card { border-radius: 12px; overflow: hidden; margin-bottom: 12px; }
    .traffic-section-title { font-size: 14px; font-weight: 600; color: var(--text-primary); margin-bottom: 10px; }
    .traffic-detail-row { display: flex; gap: 12px; }
    .traffic-detail-icon {
      width: 36px; height: 36px;
      background: var(--gradient-light);
      border-radius: 10px;
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
    }
    .traffic-detail-icon svg { width: 20px; height: 20px; fill: var(--primary-purple); }
    .traffic-detail-info { flex: 1; }
    .traffic-detail-name { font-size: 13px; font-weight: 600; margin-bottom: 2px; }
    .traffic-detail-desc { font-size: 11px; color: var(--text-secondary); margin-bottom: 6px; }
    .traffic-route { font-size: 12px; color: #666; line-height: 1.6; }

    /* 住宿 */
    .hotel-search {
      display: flex;
      gap: 10px;
      margin-bottom: 16px;
    }
    .hotel-date-box {
      flex: 1;
      background: var(--gradient-light);
      border-radius: 12px;
      padding: 12px;
      text-align: center;
      cursor: pointer;
    }
    .hotel-date-label { font-size: 11px; color: var(--text-secondary); margin-bottom: 4px; }
    .hotel-date-value { font-size: 14px; font-weight: 600; }
    .hotel-search-tip { font-size: 11px; color: var(--text-secondary); margin-bottom: 14px; }
    
    .hotel-room-card {
      background: #fff;
      border-radius: var(--radius);
      margin-bottom: 14px;
      box-shadow: var(--card-shadow);
      overflow: hidden;
      border: 1px solid #f0f0f5;
    }
    .hotel-room-img {
      width: 100%;
      height: 160px;
      background: var(--gradient-light);
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
      overflow: hidden;
    }
    .hotel-room-img img { width: 100%; height: 100%; object-fit: cover; }
    .hotel-room-img svg { width: 56px; height: 56px; fill: var(--primary-purple); opacity: 0.4; }
    .hotel-badge { position: absolute; top: 10px; right: 10px; background: var(--gradient); color: #fff; padding: 4px 12px; border-radius: 14px; font-size: 11px; }
    .hotel-room-body { padding: 14px; }
    .hotel-room-name { font-size: 16px; font-weight: 600; margin-bottom: 6px; }
    .hotel-room-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
    .hotel-tag { background: var(--gradient-light); color: var(--primary-purple); padding: 3px 9px; border-radius: 5px; font-size: 11px; }
    .hotel-distance { font-size: 12px; color: var(--text-secondary); background: #f8f9fc; padding: 8px; border-radius: 8px; margin-bottom: 12px; }
    
    .room-type-list { border-top: 1px solid #f0f0f5; padding-top: 12px; }
    .room-type-item {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 10px 0;
      border-bottom: 1px solid #f5f5f5;
    }
    .room-type-item:last-child { border-bottom: none; }
    .room-type-info { flex: 1; }
    .room-type-name { font-size: 13px; font-weight: 500; margin-bottom: 2px; }
    .room-type-price { font-size: 12px; color: var(--primary-red); font-weight: 600; }
    .room-count-control { display: flex; align-items: center; gap: 10px; }
    .room-count-btn {
      width: 28px; height: 28px;
      background: var(--gradient-light);
      border: none;
      border-radius: 8px;
      display: flex; align-items: center; justify-content: center;
      cursor: pointer;
      font-size: 16px;
      color: var(--primary-purple);
      font-weight: 600;
    }
    .room-count-num { font-size: 15px; font-weight: 600; min-width: 20px; text-align: center; }
    .room-book-btn {
      padding: 8px 16px;
      background: var(--gradient);
      color: #fff;
      border: none;
      border-radius: 18px;
      font-size: 12px;
      font-weight: 600;
      cursor: pointer;
      margin-left: 10px;
    }
    .room-book-disabled {
      background: #ccc !important;
      cursor: not-allowed !important;
    }
    .room-disabled .room-count-control {
      opacity: 0.5;
      pointer-events: none;
    }
    .room-count-btn:disabled {
      opacity: 0.5;
      cursor: not-allowed;
    }
    .room-remaining {
      font-size: 11px;
      color: var(--text-secondary);
      margin-left: 8px;
      white-space: nowrap;
    }
    .room-remaining.low {
      color: #ff6b6b;
      font-weight: 600;
    }
    .room-remaining.empty {
      color: #999;
    }
    
    /* 保险 */
    .insurance-card {
      background: var(--gradient);
      border-radius: 20px;
      padding: 22px;
      margin-bottom: 14px;
    }
    .insurance-header { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
    .insurance-icon { width: 46px; height: 46px; background: rgba(255,255,255,0.2); border-radius: 12px; display: flex; align-items: center; justify-content: center; }
    .insurance-icon svg { width: 24px; height: 24px; fill: #fff; }
    .insurance-name { font-size: 17px; font-weight: 600; color: #fff; }
    .insurance-company { font-size: 12px; color: rgba(255,255,255,0.8); margin-top: 2px; }
    .insurance-price { display: flex; align-items: baseline; gap: 4px; margin-bottom: 14px; }
    .ins-price-sym { color: #fff; font-size: 16px; }
    .ins-price-val { color: #fff; font-size: 38px; font-weight: 700; }
    .ins-price-unit { color: rgba(255,255,255,0.8); font-size: 12px; }
    .coverage-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin-bottom: 16px; }
    .coverage-item { background: rgba(255,255,255,0.12); padding: 12px; border-radius: 10px; display: flex; align-items: center; gap: 8px; }
    .coverage-icon { width: 30px; height: 30px; background: rgba(255,255,255,0.2); border-radius: 7px; display: flex; align-items: center; justify-content: center; }
    .coverage-icon svg { width: 16px; height: 16px; fill: #fff; }
    .coverage-text { font-size: 11px; color: #fff; }
    .insurance-actions { display: flex; gap: 10px; }
    .ins-btn { flex: 1; padding: 12px; border-radius: 20px; text-align: center; font-size: 13px; font-weight: 600; cursor: pointer; border: none; }
    .ins-btn-outline { background: rgba(255,255,255,0.18); color: #fff; }
    .ins-btn-fill { background: #fff; color: var(--primary-purple); }
    
    /* 景点 */
    .attraction-card {
      background: #fff;
      border-radius: var(--radius);
      margin-bottom: 12px;
      box-shadow: var(--card-shadow);
      overflow: hidden;
      border: 1px solid #f0f0f5;
    }
    .attraction-img { height: 110px; background: var(--gradient-light); display: flex; align-items: center; justify-content: center; position: relative; }
    .attraction-img svg { width: 50px; height: 50px; fill: var(--primary-purple); opacity: 0.4; }
    .attraction-tag { position: absolute; top: 8px; right: 8px; background: var(--gradient); color: #fff; padding: 3px 10px; border-radius: 12px; font-size: 11px; }
    .attraction-body { padding: 12px; }
    .attraction-name { font-size: 15px; font-weight: 600; margin-bottom: 4px; }
    .attraction-desc { font-size: 12px; color: var(--text-secondary); margin-bottom: 8px; }
    .attraction-tags { display: flex; flex-wrap: wrap; gap: 5px; }
    .att-tag { background: var(--gradient-light); color: var(--primary-purple); padding: 3px 8px; border-radius: 5px; font-size: 11px; }
    
    /* 餐饮 */
    .food-card {
      background: #fff;
      border-radius: var(--radius);
      padding: 14px;
      margin-bottom: 10px;
      box-shadow: var(--card-shadow);
      display: flex;
      align-items: center;
      gap: 12px;
      border: 1px solid #f0f0f5;
    }
    .food-img { width: 70px; height: 70px; background: var(--gradient-light); border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
    .food-img svg { width: 32px; height: 32px; fill: var(--primary-purple); opacity: 0.4; }
    .food-info { flex: 1; }
    .food-name { font-size: 14px; font-weight: 600; margin-bottom: 3px; }
    .food-desc { font-size: 12px; color: var(--text-secondary); margin-bottom: 4px; }
    .food-tags { display: flex; gap: 5px; }
    .food-tag { background: var(--gradient-light); color: var(--primary-purple); padding: 2px 7px; border-radius: 4px; font-size: 10px; }
    .food-distance { font-size: 11px; color: var(--text-secondary); }
    
    /* 交通 */
    .venue-card {
      background: var(--gradient);
      border-radius: var(--radius);
      padding: 18px;
      display: flex;
      align-items: center;
      gap: 14px;
      margin-bottom: 14px;
    }
    .venue-icon { width: 50px; height: 50px; background: rgba(255,255,255,0.2); border-radius: 12px; display: flex; align-items: center; justify-content: center; }
    .venue-icon svg { width: 26px; height: 26px; fill: #fff; }
    .venue-name { font-size: 14px; font-weight: 600; color: #fff; margin-bottom: 3px; }
    .venue-addr { font-size: 12px; color: rgba(255,255,255,0.8); }
    .traffic-item { background: #fff; border-radius: var(--radius); padding: 14px; margin-bottom: 10px; box-shadow: var(--card-shadow); border: 1px solid #f0f0f5; }
    .traffic-header { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
    .traffic-icon { width: 38px; height: 38px; background: var(--gradient-light); border-radius: 10px; display: flex; align-items: center; justify-content: center; }
    .traffic-icon svg { width: 20px; height: 20px; fill: var(--primary-purple); }
    .traffic-title { font-size: 13px; font-weight: 600; }
    .traffic-dis { font-size: 11px; color: var(--primary-purple); font-weight: 500; }
    .traffic-routes { padding-left: 48px; }
    .traffic-route { font-size: 12px; color: var(--text-secondary); line-height: 1.7; }
    
    /* 赛事合作 - 新样式表单 */
    .sponsor-section { background: #fff; border-radius: var(--radius); padding: 18px; box-shadow: var(--card-shadow); }
    .sponsor-header { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
    .sponsor-header-icon { width: 38px; height: 38px; background: var(--gradient); border-radius: 10px; display: flex; align-items: center; justify-content: center; }
    .sponsor-header-icon svg { width: 20px; height: 20px; fill: #fff; }
    .sponsor-header-title { font-size: 15px; font-weight: 600; }
    .sponsor-header-desc { font-size: 12px; color: var(--text-secondary); }
    
    /* 合作类型快捷入口 */
    .coop-type-bar {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 8px;
      margin-bottom: 16px;
    }
    .coop-type-btn {
      display: flex;
      flex-direction: column;
      align-items: center;
      padding: 14px 4px;
      background: #fff;
      border: 1.5px solid #e8e8f0;
      border-radius: 12px;
      cursor: pointer;
      transition: all 0.2s;
    }
    .coop-type-btn:active { transform: scale(0.96); }
    .coop-type-btn.active { 
      background: linear-gradient(135deg, #7c3aed 0%, #a855f7 100%);
      border-color: #7c3aed;
      box-shadow: 0 4px 16px rgba(124, 58, 237, 0.35);
    }
    .coop-type-icon { 
      width: 32px; 
      height: 32px; 
      margin-bottom: 6px;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .coop-type-icon svg { 
      width: 28px; 
      height: 28px; 
      fill: #7c3aed;
      transition: fill 0.2s;
    }
    .coop-type-btn.active .coop-type-icon svg { 
      fill: #fff;
    }
    .coop-type-btn span { 
      font-size: 11px; 
      font-weight: 600; 
      color: #666;
      transition: color 0.2s;
    }
    .coop-type-btn.active span { color: #fff; }
    
    /* 赞助表单卡片 */
    .sponsor-form-card {
      background: #fff;
      border-radius: 16px;
      padding: 20px;
      margin-bottom: 16px;
      box-shadow: 0 2px 12px rgba(0,0,0,0.06);
    }
    
    /* 合作选项 */
    .coop-label { font-size: 13px; color: #666; margin-bottom: 12px; font-weight: 500; }
    .coop-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .coop-item {
      display: flex;
      align-items: center;
      padding: 14px 12px;
      background: #f8f8fc;
      border: 1.5px solid #e8e8f0;
      border-radius: 10px;
      cursor: pointer;
      transition: all 0.2s;
      gap: 10px;
    }
    .coop-item:hover {
      background: #f3f0ff;
      border-color: #c4b5fd;
    }
    .coop-item input { 
      accent-color: #7c3aed; 
      width: 18px; 
      height: 18px; 
      flex-shrink: 0; 
    }
    .coop-item:has(input:checked) { 
      background: linear-gradient(135deg, rgba(124, 58, 237, 0.1) 0%, rgba(168, 85, 247, 0.1) 100%);
      border-color: #7c3aed;
    }
    .coop-item-text { flex: 1; min-width: 0; }
    .coop-item-name { font-size: 14px; font-weight: 500; color: #333; }
    .coop-item-desc { font-size: 11px; color: #999; margin-top: 3px; }
    .coop-item:has(input:checked) .coop-item-name { color: #7c3aed; }
    .coop-item:has(input:checked) .coop-item-desc { color: #a78bfa; }
    
    .coop-check-row { display: flex; flex-wrap: wrap; gap: 8px; }
    .coop-check {
      display: flex;
      align-items: center;
      gap: 5px;
      padding: 8px 14px;
      background: #f5f5fa;
      border-radius: 20px;
      font-size: 12px;
      color: #666;
      cursor: pointer;
      transition: all 0.2s;
    }
    .coop-check input { accent-color: #7c3aed; }
    .coop-check:has(input:checked) { 
      background: linear-gradient(135deg, #7c3aed 0%, #a855f7 100%);
      color: #fff;
      font-weight: 500;
    }
    
    .sponsor-tip {
      display: flex;
      align-items: center;
      justify-content: center;
      margin-top: 16px;
      font-size: 12px;
      color: #999;
      padding: 12px;
      background: #f8f8fc;
      border-radius: 8px;
    }
    .sponsor-tip svg { width: 14px; height: 14px; fill: #999; margin-right: 4px; flex-shrink: 0; }
    
    /* 赞助权益 */
    .sponsor-benefits {
      background: #fff;
      border-radius: 16px;
      padding: 20px;
      box-shadow: 0 2px 12px rgba(0,0,0,0.06);
    }
    .benefit-title {
      font-size: 15px;
      font-weight: 600;
      color: #333;
      margin-bottom: 16px;
      text-align: center;
    }
    .benefit-list {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 12px;
    }
    .benefit-item {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 14px;
      background: #f8f8fc;
      border-radius: 12px;
    }
    .benefit-icon { 
      width: 36px; 
      height: 36px;
      flex-shrink: 0;
      background: linear-gradient(135deg, rgba(124, 58, 237, 0.1) 0%, rgba(168, 85, 247, 0.1) 100%);
      border-radius: 10px;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .benefit-icon svg { 
      width: 20px; 
      height: 20px; 
      fill: #7c3aed;
    }
    .benefit-text { font-size: 13px; color: #666; }
    
    /* 表单增强 */
    .form-group {
      margin-bottom: 0;
    }
    .form-group.full {
      width: 100%;
    }
    .form-label {
      display: block;
      font-size: 13px;
      color: #666;
      margin-bottom: 8px;
      font-weight: 500;
    }
    .form-label span {
      color: #E53935;
    }
    .form-input {
      width: 100%;
      padding: 12px 14px;
      border: 1.5px solid #e8e8f0;
      border-radius: 10px;
      font-size: 14px;
      color: #333;
      background: #fff;
      transition: all 0.2s;
      outline: none;
    }
    .form-input::placeholder {
      color: #bbb;
    }
    .form-input:focus {
      border-color: #7c3aed;
      box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.1);
    }
    .form-row {
      display: flex;
      gap: 12px;
    }
    .form-row .form-group {
      flex: 1;
    }
    select.form-input {
      appearance: none;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='%23999'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 12px center;
      padding-right: 36px;
    }
    
    /* 提交按钮 */
    .submit-btn {
      width: 100%;
      padding: 15px;
      background: linear-gradient(135deg, #7c3aed 0%, #a855f7 100%);
      color: #fff;
      border: none;
      border-radius: 25px;
      font-size: 16px;
      font-weight: 600;
      cursor: pointer;
      box-shadow: 0 6px 20px rgba(124, 58, 237, 0.35);
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
    }
    .submit-btn svg { width: 18px; height: 18px; fill: #fff; }
    .submit-btn:active { transform: scale(0.98); opacity: 0.9; }
    
    /* 我的页面 */
    .profile-card {
      background: var(--gradient);
      border-radius: var(--radius);
      padding: 24px 20px;
      text-align: center;
      margin-bottom: 14px;
      position: relative;
      overflow: hidden;
    }
    .profile-avatar { width: 64px; height: 64px; background: rgba(255,255,255,0.2); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 12px; }
    .profile-avatar svg { width: 32px; height: 32px; fill: #fff; }
    .profile-name { font-size: 17px; font-weight: 600; color: #fff; margin-bottom: 4px; }
    .profile-id { font-size: 12px; color: rgba(255,255,255,0.8); }
    
    .menu-card { background: #fff; border-radius: var(--radius); overflow: hidden; box-shadow: var(--card-shadow); }
    .menu-item {
      display: flex;
      align-items: center;
      gap: 14px;
      padding: 16px;
      border-bottom: 1px solid #f5f5f5;
      cursor: pointer;
      transition: background 0.2s;
    }
    .menu-item:last-child { border-bottom: none; }
    .menu-item:active { background: #f8f9fc; }
    .menu-icon { width: 40px; height: 40px; background: var(--gradient-light); border-radius: 10px; display: flex; align-items: center; justify-content: center; }
    .menu-icon svg { width: 20px; height: 20px; fill: var(--primary-purple); }
    .menu-info { flex: 1; }
    .menu-name { font-size: 14px; font-weight: 500; margin-bottom: 2px; }
    .menu-desc { font-size: 12px; color: var(--text-secondary); }
    .menu-arrow { color: #c8c8d8; font-size: 18px; }
    
    /* 弹窗 */
    .modal { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.5); z-index: 1000; align-items: center; justify-content: center; }
    .modal.show { display: flex; }
    .modal-box { background: #fff; border-radius: 24px; padding: 26px; margin: 20px; max-width: 340px; width: calc(100% - 40px); }
    .modal-icon { text-align: center; margin-bottom: 14px; }
    .modal-icon svg { width: 72px; height: 72px; fill: var(--primary-purple); }
    .modal-title { font-size: 19px; font-weight: 600; text-align: center; margin-bottom: 10px; }
    .booking-modal-title { display: flex; align-items: center; justify-content: center; position: relative; }
    .booking-modal-title svg { flex-shrink: 0; }
    .modal-title-close { position: absolute; right: -10px; top: 50%; transform: translateY(-50%); font-size: 28px; line-height: 1; color: var(--text-secondary); cursor: pointer; }
    .modal-info { font-size: 13px; color: var(--text-secondary); text-align: center; line-height: 1.7; margin-bottom: 22px; }
    .modal-btn { width: 100%; padding: 13px; background: var(--gradient); color: #fff; border: none; border-radius: 24px; font-size: 14px; font-weight: 600; cursor: pointer; }
    .modal-close { text-align: center; margin-top: 12px; font-size: 13px; color: var(--text-secondary); cursor: pointer; }
    
    /* 日期选择器 */
    .date-picker-modal { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.5); z-index: 1000; align-items: flex-end; justify-content: center; }
    .date-picker-modal.show { display: flex; }
    .date-picker-content { background: #fff; border-radius: 24px 24px 0 0; padding: 22px; width: 100%; max-width: 500px; animation: slideUp 0.3s ease; }
    @keyframes slideUp { from{transform:translateY(100%)} to{transform:translateY(0)} }
    .picker-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; }
    .picker-title { font-size: 16px; font-weight: 600; }
    .picker-close { width: 30px; height: 30px; background: #f5f5f5; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; }
    .picker-close svg { width: 18px; height: 18px; fill: var(--text-secondary); }
    .date-grid { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; justify-content: space-between; }
    .date-item { width: calc(20% - 6px); padding: 10px 0; text-align: center; border-radius: 8px; cursor: pointer; background: #F7F8FA; transition: all 0.2s; }
    .date-item:active { transform: scale(0.95); }
    .date-item.selected { background: var(--gradient); color: #fff; }
    .date-item.selected .date-day, .date-item.selected .date-num { color: #fff; }
    .date-item.selected .date-tag { background: #E53935; color: #fff; }
    .date-item.disabled { background: #F7F8FA; opacity: 0.35; pointer-events: none; }
    .date-item.disabled .date-day, .date-item.disabled .date-num { color: #C0C4CC; }
    .date-day { font-size: 11px; margin-bottom: 3px; color: #999; }
    .date-num { font-size: 14px; font-weight: 600; color: #333; }
    .date-tag { font-size: 9px; background: #E53935; color: #fff; padding: 1px 3px; border-radius: 3px; margin-top: 3px; display: inline-block; max-width: 100%; text-align: center; }
    .confirm-btn { width: 100%; padding: 14px; background: linear-gradient(135deg, #E53935 0%, #7B1FA2 50%, #1565C0 100%); color: #fff; border: none; border-radius: 22px; font-size: 15px; font-weight: 600; cursor: pointer; }
    
    /* 预订详情弹窗 */
    .booking-detail { background: var(--gradient-light); padding: 14px; border-radius: 12px; margin-bottom: 16px; }
    .booking-tips { background: #FFF9E6; border: 1px solid #FFE082; padding: 12px 14px; border-radius: 10px; margin-bottom: 16px; }
    .booking-tips-title { font-size: 13px; font-weight: 600; color: #E65100; margin-bottom: 8px; }
    .booking-tips-item { font-size: 12px; color: #795548; margin-bottom: 4px; line-height: 1.5; }
    .booking-tips-item:last-child { margin-bottom: 0; }
    .booking-hotel { font-size: 15px; font-weight: 600; margin-bottom: 4px; }
    .booking-room { font-size: 12px; color: var(--text-secondary); margin-bottom: 6px; }
    .booking-remaining { font-size: 12px; color: var(--text-secondary); margin-bottom: 6px; }
    .booking-total { font-size: 16px; color: var(--primary-red); font-weight: 700; }
    
    /* 内容切换 */
    .page { display: none; }
    .page.active { display: block; }
  /* 底部Tab */
    .bottom-tab {
      position: fixed;
      bottom: 0;
      left: 0;
      right: 0;
      background: #fff;
      display: flex;
      padding-bottom: var(--safe-bottom);
      box-shadow: 0 -2px 12px rgba(0,0,0,0.06);
      z-index: 200;
      border-top: 1px solid #f0f0f5;
    }
    .tab-item {
      flex: 1;
      text-align: center;
      cursor: pointer;
      padding: 8px 0;
    }
    .tab-icon { width: 24px; height: 24px; margin: 0 auto 4px; display: flex; align-items: center; justify-content: center; }
    .tab-icon svg { width: 22px; height: 22px; fill: #b0b0c0; }
    .tab-text { font-size: 11px; color: #b0b0c0; }
    .tab-item.active .tab-icon svg { fill: var(--primary-purple); }
    .tab-item.active .tab-text { color: var(--primary-purple); font-weight: 600; }
    /* 赛事合作图标特殊样式 */
    .tab-item[data-tab="cooperation"] .tab-icon svg,
    #coop-icon { fill: none; stroke: #b0b0c0; }
    .tab-item[data-tab="cooperation"].active .tab-icon svg { fill: var(--primary-purple); stroke: none; }
  