/* ========== 全局重置 ========== */
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Helvetica Neue","Microsoft YaHei",sans-serif;background:#f0f2f5;color:#333;font-size:14px;overflow-x:hidden}
a{text-decoration:none;color:inherit}
ul,li{list-style:none}
img{display:block;max-width:100%}
button{border:none;background:none;cursor:pointer;font-family:inherit}

/* ========== 应用容器 ========== */
#app{max-width:600px;margin:0 auto;min-height:100vh;background:#f5f6fa;position:relative;padding-bottom:60px}

/* ========== 顶部标题栏 ========== */
.top-bar{position:sticky;top:0;z-index:100;background:linear-gradient(135deg,#ff6b35 0%,#ff4d4f 100%);padding:12px 16px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 8px rgba(255,77,79,.25)}
.top-bar .title{color:#fff;font-size:18px;font-weight:700;letter-spacing:.5px}
.top-bar .title small{display:block;font-size:11px;font-weight:400;opacity:.85;margin-top:2px}
.top-bar .icon-btn{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;color:#fff}

/* ========== 资讯滚动条 ========== */
.news-bar{background:linear-gradient(90deg,#e6f7ff 0%,#fff7e6 100%);padding:8px 16px;display:flex;align-items:center;gap:8px;overflow:hidden;border-bottom:1px solid #f0f0f0}
.news-bar .news-tag{background:linear-gradient(135deg,#ff4d4f,#ff7a45);color:#fff;font-size:11px;padding:2px 8px;border-radius:4px;font-weight:600;white-space:nowrap;flex-shrink:0}
.news-bar .news-track{flex:1;overflow:hidden;position:relative;height:20px}
.news-bar .news-list{position:absolute;white-space:nowrap;animation:scrollNews 20s linear infinite}
.news-bar .news-list span{margin-right:40px;color:#666;font-size:12px}
.news-bar .news-list span em{color:#ff4d4f;font-style:normal;font-weight:600}
@keyframes scrollNews{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ========== Banner轮播 ========== */
.banner-wrap{padding:12px 16px 0}
.banner{position:relative;border-radius:14px;overflow:hidden;height:160px;box-shadow:0 4px 16px rgba(0,0,0,.1)}
.banner-slides{display:flex;transition:transform .5s ease;height:100%}
.banner-slide{min-width:100%;height:100%;position:relative;display:flex;align-items:center;padding:0 24px}
.banner-slide.s1{background:linear-gradient(135deg,#ff4d4f 0%,#ff7a45 50%,#ffa940 100%)}
.banner-slide.s2{background:linear-gradient(135deg,#1890ff 0%,#36cfc9 100%)}
.banner-slide.s3{background:linear-gradient(135deg,#722ed1 0%,#eb2f96 100%)}
.banner-slide .banner-text{color:#fff;z-index:2}
.banner-slide .banner-text h2{font-size:26px;font-weight:800;margin-bottom:6px;text-shadow:0 2px 4px rgba(0,0,0,.2)}
.banner-slide .banner-text p{font-size:14px;opacity:.95;margin-bottom:10px}
.banner-slide .banner-btn{display:inline-block;background:#fff;color:#ff4d4f;padding:6px 18px;border-radius:20px;font-size:13px;font-weight:700;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.banner-slide.s2 .banner-btn{color:#1890ff}
.banner-slide.s3 .banner-btn{color:#722ed1}
.banner-slide .banner-icon{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:80px;opacity:.3;z-index:1}
.banner-dots{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);display:flex;gap:6px;z-index:3}
.banner-dots span{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.5);transition:all .3s}
.banner-dots span.active{width:18px;border-radius:3px;background:#fff}

/* ========== 区块标题 ========== */
.section-title{padding:16px 16px 10px;display:flex;align-items:center;justify-content:space-between}
.section-title h3{font-size:16px;font-weight:700;color:#222;display:flex;align-items:center;gap:6px}
.section-title h3::before{content:'';width:4px;height:16px;background:linear-gradient(180deg,#ff4d4f,#ff7a45);border-radius:2px}
.section-title .more{font-size:12px;color:#999}

/* ========== 本地生活4卡片 ========== */
.life-grid{padding:0 16px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.life-card{background:#fff;border-radius:12px;padding:14px;position:relative;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.04);transition:transform .2s}
.life-card:active{transform:scale(.97)}
.life-card .lc-title{font-size:15px;font-weight:700;color:#222;margin-bottom:4px}
.life-card .lc-desc{font-size:11px;color:#999;margin-bottom:10px}
.life-card .lc-btn{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:4px 12px;border-radius:14px;color:#fff}
.life-card .lc-btn.orange{background:linear-gradient(135deg,#ffa940,#ff7a45)}
.life-card .lc-btn.blue{background:linear-gradient(135deg,#40a9ff,#1890ff)}
.life-card .lc-btn.red{background:linear-gradient(135deg,#ff7875,#ff4d4f)}
.life-card .lc-icon{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px}
.life-card .lc-icon.orange{background:linear-gradient(135deg,#fff7e6,#ffe7ba)}
.life-card .lc-icon.blue{background:linear-gradient(135deg,#e6f7ff,#bae7ff)}
.life-card .lc-icon.red{background:linear-gradient(135deg,#fff1f0,#ffccc7)}
.life-card .lc-icon.green{background:linear-gradient(135deg,#f6ffed,#d9f7be)}
.life-card .hot-tag{position:absolute;top:0;right:0;background:linear-gradient(135deg,#ff4d4f,#ff7a45);color:#fff;font-size:10px;padding:2px 8px;border-radius:0 12px 0 10px;font-weight:600}

/* ========== 生活服务宫格 ========== */
.service-section{margin:12px 16px 0;background:#fff;border-radius:14px;padding:16px 8px;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.service-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px 4px}
.service-item{display:flex;flex-direction:column;align-items:center;gap:6px;position:relative}
.service-item:active{opacity:.7}
.service-item .sv-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;position:relative}
.service-item .sv-icon.blue{background:linear-gradient(135deg,#e6f7ff,#91d5ff)}
.service-item .sv-icon.yellow{background:linear-gradient(135deg,#fffbe6,#ffe58f)}
.service-item .sv-icon.green{background:linear-gradient(135deg,#f6ffed,#b7eb8f)}
.service-item .sv-icon.red{background:linear-gradient(135deg,#fff1f0,#ffa39e)}
.service-item .sv-icon.purple{background:linear-gradient(135deg,#f9f0ff,#d3adf7)}
.service-item .sv-icon.cyan{background:linear-gradient(135deg,#e6fffb,#87e8de)}
.service-item .sv-icon.orange{background:linear-gradient(135deg,#fff7e6,#ffd591)}
.service-item .sv-icon.pink{background:linear-gradient(135deg,#fff0f6,#ffadd2)}
.service-item .sv-name{font-size:11px;color:#555;text-align:center}
.service-item .hot-badge{position:absolute;top:-4px;right:2px;background:linear-gradient(135deg,#ff4d4f,#ff7a45);color:#fff;font-size:9px;padding:1px 5px;border-radius:6px;font-weight:600;z-index:2}

/* ========== 分类标签栏 ========== */
.category-tabs{display:flex;gap:8px;padding:12px 16px;overflow-x:auto;scrollbar-width:none}
.category-tabs::-webkit-scrollbar{display:none}
.category-tabs .cat-tab{flex-shrink:0;padding:6px 16px;border-radius:16px;background:#fff;font-size:13px;color:#666;white-space:nowrap;box-shadow:0 1px 4px rgba(0,0,0,.04);transition:all .2s}
.category-tabs .cat-tab.active{background:linear-gradient(135deg,#ff4d4f,#ff7a45);color:#fff;font-weight:600}

/* ========== 商品列表 ========== */
.product-list{padding:0 16px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.product-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.product-card .p-img{height:120px;position:relative;display:flex;align-items:center;justify-content:center;font-size:48px}
.product-card .p-img.bg1{background:linear-gradient(135deg,#fff1f0,#ffccc7)}
.product-card .p-img.bg2{background:linear-gradient(135deg,#e6f7ff,#bae7ff)}
.product-card .p-img.bg3{background:linear-gradient(135deg,#fff7e6,#ffe7ba)}
.product-card .p-img.bg4{background:linear-gradient(135deg,#f6ffed,#d9f7be)}
.product-card .p-tag{position:absolute;top:8px;left:8px;background:rgba(0,0,0,.5);color:#fff;font-size:10px;padding:2px 6px;border-radius:4px}
.product-card .p-info{padding:10px}
.product-card .p-name{font-size:13px;color:#333;font-weight:500;line-height:1.4;height:36px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.product-card .p-price{display:flex;align-items:baseline;gap:4px;margin-top:6px}
.product-card .p-price .now{color:#ff4d4f;font-size:16px;font-weight:800}
.product-card .p-price .now small{font-size:11px}
.product-card .p-price .origin{color:#bbb;font-size:11px;text-decoration:line-through}
.product-card .p-sales{font-size:10px;color:#999;margin-top:4px}

/* ========== 底部导航 ========== */
.tab-bar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:600px;background:#fff;display:flex;justify-content:space-around;padding:6px 0 10px;box-shadow:0 -2px 10px rgba(0,0,0,.06);z-index:200}
.tab-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 12px;color:#999;font-size:10px;transition:color .2s;position:relative}
.tab-item.active{color:#ff4d4f}
.tab-item .tab-icon{font-size:22px;line-height:1}
.tab-item.center .tab-icon{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#ff4d4f,#ff7a45);display:flex;align-items:center;justify-content:center;color:#fff;font-size:24px;margin-top:-18px;box-shadow:0 4px 12px rgba(255,77,79,.4)}

/* ========== 页面视图 ========== */
.page-view{display:none;animation:fadeIn .3s ease}
.page-view.active{display:block}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* ========== 加油页 ========== */
.fuel-hero{background:linear-gradient(135deg,#1a1a2e 0%,#16213e 50%,#0f3460 100%);padding:20px 16px 30px;color:#fff;position:relative;overflow:hidden}
.fuel-hero::after{content:'';position:absolute;right:-40px;top:-40px;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(255,170,0,.3),transparent 70%)}
.fuel-hero h2{font-size:22px;font-weight:800;margin-bottom:4px}
.fuel-hero p{font-size:13px;opacity:.8}
.fuel-stats{display:flex;gap:12px;margin-top:16px}
.fuel-stat{flex:1;background:rgba(255,255,255,.1);backdrop-filter:blur(10px);border-radius:10px;padding:12px;text-align:center}
.fuel-stat .num{font-size:20px;font-weight:800;color:#ffaa00}
.fuel-stat .label{font-size:11px;opacity:.7;margin-top:2px}
.fuel-card-list{padding:0 16px;margin-top:-16px;position:relative;z-index:2}
.fuel-card{background:#fff;border-radius:14px;padding:14px;margin-bottom:10px;box-shadow:0 4px 12px rgba(0,0,0,.08);display:flex;align-items:center;gap:12px}
.fuel-card .fc-logo{width:50px;height:50px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0}
.fuel-card .fc-info{flex:1}
.fuel-card .fc-name{font-size:15px;font-weight:700;color:#222}
.fuel-card .fc-addr{font-size:11px;color:#999;margin-top:2px}
.fuel-card .fc-price{text-align:right}
.fuel-card .fc-price .price{font-size:18px;font-weight:800;color:#ff4d4f}
.fuel-card .fc-price .price small{font-size:11px}
.fuel-card .fc-price .unit{font-size:10px;color:#999}
.fuel-card .fc-btn{background:linear-gradient(135deg,#ff4d4f,#ff7a45);color:#fff;font-size:12px;font-weight:600;padding:6px 14px;border-radius:16px;margin-top:4px}

/* ========== 旅游页 ========== */
.travel-banner{margin:12px 16px;border-radius:14px;overflow:hidden;height:140px;background:linear-gradient(135deg,#00c6fb 0%,#005bea 100%);position:relative;display:flex;align-items:center;padding:0 20px;color:#fff}
.travel-banner h2{font-size:22px;font-weight:800;margin-bottom:4px}
.travel-banner p{font-size:13px;opacity:.9}
.travel-banner .plane{position:absolute;right:20px;top:50%;transform:translateY(-50%);font-size:60px;opacity:.3}
.travel-cats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:0 16px}
.travel-cat{background:#fff;border-radius:12px;padding:14px 8px;text-align:center;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.travel-cat .tc-icon{font-size:28px;margin-bottom:6px}
.travel-cat .tc-name{font-size:12px;color:#555;font-weight:500}
.travel-deals{padding:0 16px;margin-top:16px}
.deal-card{background:#fff;border-radius:14px;overflow:hidden;margin-bottom:12px;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.deal-card .dc-img{height:120px;display:flex;align-items:center;justify-content:center;font-size:48px;position:relative}
.deal-card .dc-img.t1{background:linear-gradient(135deg,#a8edea,#fed6e3)}
.deal-card .dc-img.t2{background:linear-gradient(135deg,#ffecd2,#fcb69f)}
.deal-card .dc-img.t3{background:linear-gradient(135deg,#d299c2,#fef9d7)}
.deal-card .dc-tag{position:absolute;top:10px;left:10px;background:linear-gradient(135deg,#ff4d4f,#ff7a45);color:#fff;font-size:11px;padding:3px 10px;border-radius:4px;font-weight:600}
.deal-card .dc-body{padding:12px 14px}
.deal-card .dc-title{font-size:15px;font-weight:700;color:#222;margin-bottom:4px}
.deal-card .dc-desc{font-size:12px;color:#999;margin-bottom:8px}
.deal-card .dc-bottom{display:flex;align-items:center;justify-content:space-between}
.deal-card .dc-price{color:#ff4d4f;font-size:18px;font-weight:800}
.deal-card .dc-price small{font-size:11px;font-weight:400}
.deal-card .dc-btn{background:linear-gradient(135deg,#ff4d4f,#ff7a45);color:#fff;font-size:12px;padding:6px 16px;border-radius:16px;font-weight:600}

/* ========== 优惠商城页 ========== */
.mall-search{padding:12px 16px;background:#fff;position:sticky;top:0;z-index:50}
.mall-search .search-box{background:#f5f5f5;border-radius:20px;padding:8px 16px;display:flex;align-items:center;gap:8px;color:#999;font-size:13px}
.mall-banner{margin:0 16px 12px;border-radius:12px;overflow:hidden;height:100px;background:linear-gradient(135deg,#fa709a 0%,#fee140 100%);display:flex;align-items:center;padding:0 20px;color:#fff}
.mall-banner h3{font-size:18px;font-weight:800}
.mall-banner p{font-size:12px;opacity:.9;margin-top:2px}
.mall-flash{margin:0 16px 12px;background:#fff;border-radius:12px;padding:14px;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.mall-flash .mf-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.mall-flash .mf-title h4{font-size:15px;font-weight:700;color:#222;display:flex;align-items:center;gap:6px}
.mall-flash .mf-title .timer{font-size:12px;color:#ff4d4f;font-weight:600}
.flash-list{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none}
.flash-list::-webkit-scrollbar{display:none}
.flash-item{flex-shrink:0;width:100px;text-align:center}
.flash-item .fi-img{width:100px;height:100px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:36px;margin-bottom:6px}
.flash-item .fi-img.f1{background:linear-gradient(135deg,#fff1f0,#ffccc7)}
.flash-item .fi-img.f2{background:linear-gradient(135deg,#e6f7ff,#bae7ff)}
.flash-item .fi-img.f3{background:linear-gradient(135deg,#fff7e6,#ffe7ba)}
.flash-item .fi-img.f4{background:linear-gradient(135deg,#f6ffed,#d9f7be)}
.flash-item .fi-name{font-size:11px;color:#555;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.flash-item .fi-price{color:#ff4d4f;font-size:14px;font-weight:800;margin-top:2px}

/* ========== 我的页 ========== */
.profile-header{background:linear-gradient(135deg,#ff6b35 0%,#ff4d4f 100%);padding:30px 16px 50px;color:#fff;position:relative}
.profile-header .ph-top{display:flex;align-items:center;gap:14px}
.profile-header .avatar{width:60px;height:60px;border-radius:50%;background:rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;font-size:28px;border:2px solid rgba(255,255,255,.4)}
.profile-header .ph-info h2{font-size:18px;font-weight:700}
.profile-header .ph-info p{font-size:12px;opacity:.85;margin-top:4px}
.profile-header .ph-info .vip-tag{display:inline-block;background:linear-gradient(135deg,#ffd700,#ffaa00);color:#8B4513;font-size:10px;padding:2px 8px;border-radius:8px;font-weight:700;margin-top:4px}
.profile-card{margin:0 16px;margin-top:-30px;background:#fff;border-radius:14px;padding:16px;box-shadow:0 4px 16px rgba(0,0,0,.1);position:relative;z-index:2}
.profile-stats{display:flex;justify-content:space-around;text-align:center}
.profile-stats .ps-item .num{font-size:20px;font-weight:800;color:#222}
.profile-stats .ps-item .label{font-size:11px;color:#999;margin-top:2px}
.profile-menu{margin:12px 16px;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.profile-menu .pm-item{display:flex;align-items:center;padding:14px 16px;border-bottom:1px solid #f5f5f5;gap:12px}
.profile-menu .pm-item:last-child{border-bottom:none}
.profile-menu .pm-item .pm-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.profile-menu .pm-item .pm-icon.orange{background:#fff7e6}
.profile-menu .pm-item .pm-icon.blue{background:#e6f7ff}
.profile-menu .pm-item .pm-icon.green{background:#f6ffed}
.profile-menu .pm-item .pm-icon.purple{background:#f9f0ff}
.profile-menu .pm-item .pm-icon.red{background:#fff1f0}
.profile-menu .pm-item .pm-icon.gray{background:#f5f5f5}
.profile-menu .pm-item .pm-text{flex:1;font-size:14px;color:#333}
.profile-menu .pm-item .pm-arrow{color:#ccc;font-size:16px}
.profile-menu .pm-item .pm-badge{background:#ff4d4f;color:#fff;font-size:10px;padding:1px 6px;border-radius:8px;margin-right:4px}

/* ========== Toast提示 ========== */
.toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(0,0,0,.75);color:#fff;padding:10px 20px;border-radius:8px;font-size:13px;z-index:9999;opacity:0;transition:opacity .3s;pointer-events:none;white-space:nowrap}
.toast.show{opacity:1}

/* ========== 安全区适配 ========== */
@supports(padding-bottom:env(safe-area-inset-bottom)){
  .tab-bar{padding-bottom:calc(10px + env(safe-area-inset-bottom))}
  #app{padding-bottom:calc(60px + env(safe-area-inset-bottom))}
}
/* 分类标签横向滚动 */
.category-tabs{display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:8px 4px;gap:8px;}
.category-tabs::-webkit-scrollbar{display:none;}
.category-tabs .cat-tab{flex-shrink:0;}
.section-title .more{cursor:pointer;}

.category-tabs{display:flex!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch;padding:8px 4px;gap:8px;scrollbar-width:none;}
.category-tabs::-webkit-scrollbar{display:none;}
.category-tabs .cat-tab{flex-shrink:0!important;white-space:nowrap;}
