/* pages-front.css — 前台页面：首页、详情、个人中心、登录注册、分销 */
  .hero{
    padding:42px 34px;border-radius:24px;position:relative;overflow:hidden;color:#fff;
    background:linear-gradient(120deg,#1e3a8a 0%,#2563eb 48%,#3b82f6 100%);
  }
  .hero::before{
    content:'';position:absolute;right:-70px;top:-80px;width:280px;height:280px;border-radius:50%;
    background:rgba(255,255,255,.09);
  }
  .hero::after{
    content:'';position:absolute;right:110px;bottom:-120px;width:200px;height:200px;border-radius:50%;
    background:rgba(255,255,255,.06);
  }
  .hero h1{font-size:26px;font-weight:800;letter-spacing:.5px;position:relative}
  .hero p{margin-top:10px;font-size:14px;opacity:.85;position:relative}
  .search-bar{
    margin-top:24px;display:flex;align-items:center;gap:10px;max-width:520px;position:relative;
    background:rgba(255,255,255,.96);border-radius:14px;padding:0 16px;height:50px;
    box-shadow:0 12px 30px -14px rgba(2,20,60,.6);
  }
  .search-bar input{
    flex:1;border:none;outline:none;font-size:14.5px;background:transparent;color:#0f172a;
  }
  .search-bar input::placeholder{color:#64748b}

  /* ===== 新增：最新上架区块 ===== */
  .latest-block{
    background:#fff;border:1px solid #e9eef6;border-radius:20px;
    padding:20px 22px 16px;margin-top:18px;
  }
  .latest-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
  .latest-head h2{
    font-size:16px;font-weight:800;display:flex;align-items:center;gap:9px;
  }
  .latest-head .dot{
    width:8px;height:8px;border-radius:50%;background:#ef4444;
    box-shadow:0 0 0 4px rgba(239,68,68,.15);
  }
  .latest-scroll{
    display:flex;gap:14px;overflow-x:auto;padding-bottom:6px;
    scrollbar-width:thin;scroll-snap-type:x proximity;
  }
  .latest-card{
    flex:0 0 252px;scroll-snap-align:start;
    background:#fff;border:1px solid #e9eef6;border-radius:16px;padding:16px;
    transition:.22s;text-decoration:none;color:inherit;display:flex;flex-direction:column;
  }
  .latest-card:hover{
    transform:translateY(-3px);border-color:#c7d7f5;
    box-shadow:0 14px 28px -18px rgba(15,23,42,.35);
  }
  .lc-top{display:flex;align-items:center;gap:10px;margin-bottom:9px}
  .lc-icon{
    width:38px;height:38px;border-radius:11px;display:grid;place-items:center;
    font-size:19px;flex:0 0 auto;
  }
  .latest-card h4{font-size:13.5px;font-weight:700;line-height:1.35}
  .latest-card p{
    font-size:12px;color:#64748b;margin-top:6px;line-height:1.55;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
    min-height:37px;
  }
  .lc-foot{
    margin-top:11px;font-size:12px;color:#64748b;
    display:flex;justify-content:space-between;align-items:center;
  }
  .lc-new{
    font-size:10.5px;font-weight:800;color:#fff;letter-spacing:.4px;
    background:linear-gradient(135deg,#ef4444,#f97316);
    padding:2px 8px;border-radius:999px;
  }

  .filter-block{
    background:#fff;border:1px solid #e9eef6;border-radius:18px;padding:18px 22px;margin-top:18px;
    display:flex;align-items:flex-start;gap:14px;
  }
  .filter-label{
    flex:0 0 auto;font-size:13px;font-weight:700;color:#64748b;padding-top:7px;width:60px;
  }
  .chips{display:flex;flex-wrap:wrap;gap:9px;flex:1}
  .chip{
    padding:7px 15px;border-radius:999px;border:1px solid #e2e8f0;background:#fff;
    font-size:13px;color:#475569;cursor:pointer;transition:.18s;white-space:nowrap;user-select:none;
  }
  .chip:hover{border-color:#93c5fd;color:#2563eb;background:#f8fbff}
  .chip.active{
    background:#2563eb;border-color:#2563eb;color:#fff;
    box-shadow:0 6px 14px -6px rgba(37,99,235,.8);
  }

  .list-head{display:flex;align-items:center;justify-content:space-between;margin:26px 2px 16px}
  .list-head h2{font-size:18px;font-weight:800}
  .list-head em{font-style:normal;color:#2563eb;font-size:14px;margin-left:4px}
  .link-clear{background:none;border:none;color:#64748b;font-size:13px;cursor:pointer;transition:.2s}
  .link-clear:hover{color:#2563eb}

  .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:18px}
  .card{
    background:#fff;border:1px solid #e9eef6;border-radius:18px;padding:20px;
    cursor:pointer;transition:.25s;position:relative;display:flex;flex-direction:column;
    text-decoration:none;color:inherit;
  }
  .card:hover{
    transform:translateY(-4px);border-color:#c7d7f5;
    box-shadow:0 18px 34px -20px rgba(15,23,42,.35);
  }
  .card-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px;gap:8px}
  .card-icon{
    width:50px;height:50px;border-radius:14px;display:grid;place-items:center;font-size:24px;
    flex:0 0 auto;
  }
  .badge-stack{display:flex;flex-direction:column;align-items:flex-end;gap:5px}
  .badge{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;letter-spacing:.3px;white-space:nowrap}
  .badge-vip{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e}
  /* 新增：NEW 角标 */
  .badge-new{background:linear-gradient(135deg,#ef4444,#f97316);color:#fff}
  .card h3{font-size:15.5px;font-weight:700;letter-spacing:.2px}
  .card-desc{
    font-size:13px;color:#64748b;margin-top:7px;line-height:1.65;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
    min-height:42px;
  }
  .card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
  .tag{font-size:12px;color:#4f6b8f;background:#f1f5fb;border-radius:6px;padding:3px 8px}
  .card-foot{
    display:flex;align-items:center;justify-content:space-between;
    margin-top:16px;padding-top:13px;border-top:1px dashed #eef2f8;
    font-size:12.5px;color:#64748b;
  }
  .card-more{color:#2563eb;font-weight:600;font-size:12.5px}

  .empty-state{text-align:center;padding:70px 0;color:#64748b;font-size:14px}
  .empty-state span{font-size:38px;display:block;margin-bottom:12px}
  .empty-state .empty-clear{
    margin-top:18px;padding:9px 18px;border-radius:11px;border:1px solid #dbeafe;
    background:#f8fbff;color:#2563eb;font-size:13px;font-weight:600;cursor:pointer;transition:.2s;
  }
  .empty-state .empty-clear:hover{background:#2563eb;color:#fff;border-color:#2563eb}

  .back{
    display:inline-flex;align-items:center;gap:6px;font-size:13.5px;color:#64748b;transition:.2s;
  }
  .back:hover{color:#2563eb}
  .detail-head{
    display:flex;gap:20px;align-items:flex-start;margin-top:18px;
    background:#fff;border:1px solid #e9eef6;border-radius:22px;padding:26px 28px;
  }
  .detail-icon{
    width:74px;height:74px;border-radius:20px;display:grid;place-items:center;font-size:36px;flex:0 0 auto;
  }
  .detail-head-main h1{font-size:23px;font-weight:800;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .pill{
    font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px;
    background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e;
  }
  /* 新增：详情页「最新上架」标记 */
  .pill-new{
    background:linear-gradient(135deg,#fee2e2,#fecaca);color:#b91c1c;
    display:inline-flex;align-items:center;gap:4px;
  }
  .detail-desc{color:#64748b;font-size:14px;margin-top:8px}
  .detail-meta{display:flex;flex-wrap:wrap;gap:16px;margin-top:14px;font-size:12.5px;color:#64748b}

  .detail-body{display:grid;grid-template-columns:1fr 322px;gap:22px;margin-top:22px;align-items:start}
  .block{
    background:#fff;border:1px solid #e9eef6;border-radius:20px;padding:24px 26px;margin-bottom:20px;
  }
  .block h2{font-size:16px;font-weight:800;margin-bottom:18px;display:flex;align-items:center;gap:9px}
  .block h2::before{content:'';width:4px;height:16px;border-radius:3px;background:#2563eb}

  .features{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .feature{display:flex;gap:12px}
  .feature-icon{
    width:38px;height:38px;border-radius:11px;display:grid;place-items:center;
    font-size:18px;background:#eff6ff;flex:0 0 auto;
  }
  .feature h4{font-size:13.5px;font-weight:700}
  .feature p{font-size:12.5px;color:#64748b;margin-top:3px;line-height:1.6}

  .preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  .shot{
    aspect-ratio:16/10;border-radius:14px;display:grid;place-items:center;font-size:34px;
    background:linear-gradient(135deg,var(--c1),var(--c2));border:1px solid rgba(255,255,255,.6);
  }

  .steps{list-style:none;counter-reset:s}
  .steps li{
    counter-increment:s;position:relative;padding-left:38px;font-size:13.5px;color:#475569;
    padding-bottom:14px;
  }
  .steps li::before{
    content:counter(s);position:absolute;left:0;top:0;
    width:24px;height:24px;border-radius:50%;background:#eff6ff;color:#2563eb;
    font-size:12px;font-weight:800;display:grid;place-items:center;
  }

  .detail-aside{position:sticky;top:24px}
  .download-panel{
    background:#fff;border:1px solid #e9eef6;border-radius:20px;padding:24px;
    box-shadow:0 18px 40px -28px rgba(15,23,42,.4);
  }
  .download-panel h3{font-size:15px;font-weight:800;margin-bottom:16px}
  .dl-info{display:grid;gap:11px;margin-bottom:20px}
  .dl-info div{display:flex;justify-content:space-between;font-size:13px}
  .dl-info span{color:#64748b}
  .dl-info b{font-weight:600;color:#334155}

  .btn-unlock{
    width:100%;padding:14px;border:none;border-radius:14px;cursor:pointer;
    font-size:15px;font-weight:700;color:#fff;letter-spacing:.5px;transition:.2s;
    background:linear-gradient(135deg,#2563eb,#3b82f6);
    box-shadow:0 12px 26px -12px rgba(37,99,235,.95);
  }
  .btn-unlock:hover{transform:translateY(-2px);box-shadow:0 16px 30px -12px rgba(37,99,235,.95)}
  .btn-unlock.is-member{
    background:linear-gradient(135deg,#059669,#10b981);
    box-shadow:0 12px 26px -12px rgba(16,185,129,.95);
  }
  .dl-hint{font-size:12px;color:#64748b;text-align:center;margin-top:12px;line-height:1.7}
  .dl-other{
    margin-top:18px;padding-top:16px;border-top:1px dashed #eef2f8;
    font-size:12.5px;color:#64748b;display:flex;justify-content:space-between;
  }
  .dl-other b{color:#2563eb;font-weight:600;cursor:pointer;background:none;border:none;font-size:12.5px}

  .user-card{
    display:flex;align-items:center;gap:18px;flex-wrap:wrap;
    background:linear-gradient(120deg,#1e3a8a,#2563eb 60%,#3b82f6);
    border-radius:22px;padding:28px 30px;color:#fff;
  }
  .user-avatar{
    width:66px;height:66px;border-radius:50%;display:grid;place-items:center;
    background:rgba(255,255,255,.22);font-size:24px;font-weight:800;flex:0 0 auto;
    border:2px solid rgba(255,255,255,.4);
  }
  .user-info h2{font-size:20px;font-weight:800;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .vip-badge{
    font-size:12px;font-weight:800;padding:3px 10px;border-radius:999px;
    background:linear-gradient(135deg,#fde68a,#fbbf24);color:#7c2d12;letter-spacing:.3px;
  }
  .user-info p{font-size:13px;opacity:.8;margin-top:5px}

  .stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px}
  .stat{background:#fff;border:1px solid #e9eef6;border-radius:18px;padding:18px 20px}
  .stat b{font-size:22px;font-weight:800;color:#0f172a}
  .stat span{display:block;font-size:12.5px;color:#64748b;margin-top:2px}

  .vip-panel{
    margin-top:18px;border-radius:20px;padding:24px 26px;display:flex;
    align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
    background:linear-gradient(120deg,#fffbeb,#fef3c7);border:1px solid #fde68a;
  }
  .vip-panel h3{font-size:16px;font-weight:800;color:#92400e}
  .vip-panel p{font-size:13px;color:#b45309;margin-top:4px}
  .vip-panel.active{background:linear-gradient(120deg,#ecfdf5,#d1fae5);border-color:#a7f3d0}
  .vip-panel.active h3{color:#065f46}
  .vip-panel.active p{color:#047857}
  .btn-vip{
    padding:9px 18px;border:none;border-radius:11px;cursor:pointer;font-size:13.5px;font-weight:700;color:#7c2d12;
    background:linear-gradient(135deg,#fde68a,#fbbf24);
    box-shadow:0 6px 16px -8px rgba(245,158,11,.9);transition:.2s;white-space:nowrap;
  }
  .btn-vip:hover{transform:translateY(-1px);box-shadow:0 10px 20px -8px rgba(245,158,11,.9)}

  .panel{background:#fff;border:1px solid #e9eef6;border-radius:20px;padding:22px 24px;margin-top:18px}
  .panel h3{font-size:15px;font-weight:800;margin-bottom:14px}
  .list-item{display:flex;align-items:center;gap:14px;padding:13px 0;border-bottom:1px dashed #f1f5fb}
  .list-item:last-child{border-bottom:none}
  .li-icon{
    width:40px;height:40px;border-radius:11px;background:#eff6ff;display:grid;place-items:center;
    font-size:18px;flex:0 0 auto;
  }
  .li-main{flex:1;min-width:0}
  .li-main h4{font-size:13.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .li-main p{font-size:12px;color:#64748b;margin-top:2px}
  .btn-mini{
    padding:7px 14px;border-radius:9px;border:1px solid #dbeafe;background:#f8fbff;
    color:#2563eb;font-size:12.5px;font-weight:600;cursor:pointer;transition:.2s;white-space:nowrap;
  }
  .btn-mini:hover{background:#2563eb;color:#fff;border-color:#2563eb}
  .empty-small{text-align:center;color:#64748b;font-size:13px;padding:26px 0}
  .quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
  .quick-card{
    background:#fff;border:1px solid #e9eef6;border-radius:16px;padding:18px;cursor:pointer;
    transition:.22s;display:flex;gap:12px;align-items:center;text-align:left;width:100%;
  }
  .quick-card:hover{transform:translateY(-3px);border-color:#c7d7f5;box-shadow:0 14px 28px -20px rgba(15,23,42,.4)}
  .quick-icon{
    width:42px;height:42px;border-radius:12px;display:grid;place-items:center;
    font-size:20px;background:#eff6ff;flex:0 0 auto;
  }
  .quick-card h4{font-size:14px;font-weight:800}
  .quick-card p{font-size:12px;color:#64748b;margin-top:2px}
  /* 分销中心 */
  .earn-hero{
    background:linear-gradient(120deg,#1e3a8a,#2563eb 55%,#3b82f6);color:#fff;
    border-radius:22px;padding:26px 28px;position:relative;overflow:hidden;
  }
  .earn-hero::after{
    content:'';position:absolute;right:-60px;top:-70px;width:220px;height:220px;
    border-radius:50%;background:rgba(255,255,255,.08);
  }
  .earn-hero h2{font-size:19px;font-weight:800;position:relative}
  .earn-hero p{font-size:13px;opacity:.85;margin-top:6px;position:relative}
  .earn-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:20px;position:relative}
  .earn-cell{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2);border-radius:14px;padding:14px}
  .earn-cell b{font-size:21px;font-weight:800;display:block;line-height:1.3}
  .earn-cell span{font-size:12px;opacity:.85}
  .promo-box{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
  .promo-val{
    flex:1;min-width:190px;background:#f8fafc;border:1px solid #e9eef6;border-radius:12px;
    padding:12px 14px;font-size:13px;color:#334155;word-break:break-all;
  }
  .promo-val small{display:block;font-size:11.5px;color:#64748b;margin-bottom:4px}
  .table-wrap{overflow-x:auto}
  .commission-table{width:100%;border-collapse:collapse;font-size:13px;min-width:520px}
  .commission-table th{
    text-align:left;font-size:12px;color:#64748b;font-weight:700;
    padding:10px 8px;border-bottom:1px solid #eef2f8;white-space:nowrap;
  }
  .commission-table td{padding:12px 8px;border-bottom:1px dashed #eef2f8;color:#334155;white-space:nowrap}
  .commission-table tr:last-child td{border-bottom:none}
  .money{color:#dc2626;font-weight:700}
  .rule-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
  .rule-card{background:#f8fafc;border:1px solid #eef2f8;border-radius:14px;padding:16px}
  .rule-card b{display:block;font-size:13.5px;font-weight:800;color:#0f172a;margin-bottom:6px}
  .rule-card p{font-size:12.5px;color:#64748b;line-height:1.7}
  .rule-num{
    display:inline-grid;place-items:center;width:22px;height:22px;border-radius:7px;
    background:#2563eb;color:#fff;font-size:12px;font-weight:800;margin-right:6px;
  }
  .stat-row.four{grid-template-columns:repeat(4,1fr)}
  .quick-grid{grid-template-columns:repeat(2,1fr)}
