*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;background:#f5f5f5;color:#333;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Helvetica Neue",Arial,sans-serif;font-size:14px;-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.page{min-height:100%;padding-bottom:70px}
.page.no-tab{padding-bottom:20px}
.safe-bottom{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}

/* header */
.shop-header{background:#fff;padding:14px 14px 10px}
.shop-top{display:flex;align-items:flex-start}
.shop-logo{width:52px;height:52px;border-radius:8px;object-fit:cover;background:#eee;flex-shrink:0}
.shop-meta{margin-left:10px;flex:1;min-width:0;display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.shop-name-col{min-width:0}
.shop-name{font-size:18px;font-weight:700;color:#222;line-height:1.3}
.shop-badge{display:inline-block;margin-top:6px;font-size:11px;color:#e64340;background:#fff;border:1px solid #f5b5b0;border-radius:4px;padding:2px 6px}
.shop-online{font-size:12px;color:#e64340;white-space:nowrap;padding-top:4px}
.shop-intro{margin-top:10px;font-size:14px;line-height:1.55;color:#666}

/* tabs */
.home-tabs{display:flex;background:#fff;border-bottom:1px solid #f0f0f0;padding:0 10px}
.home-tabs .tab{flex:1;text-align:center;padding:12px 0;font-size:15px;color:#888;position:relative}
.home-tabs .tab.active{color:#e64340;font-weight:600}
.home-tabs .tab.active:after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:48px;height:3px;background:#e64340;border-radius:1px}

/* search */
.search-wrap{background:#fff;padding:10px 14px 12px}
.search-box{display:flex;align-items:center;background:#f3f3f3;border-radius:20px;padding:8px 14px}
.search-box .ico{color:#999;margin-right:8px;font-style:normal}
.search-box input{border:0;outline:0;background:transparent;flex:1;font-size:14px}

/* section */
.section{margin-top:8px;background:#fff;padding:12px 14px}
.section-title{display:flex;align-items:center;font-size:15px;font-weight:600;margin-bottom:10px}
.section-title:before{content:"";width:3px;height:14px;background:#e85d4c;border-radius:2px;margin-right:8px}

/* goods card - 今日推荐 */
.goods-list{padding:0 0 10px}
.goods-card{background:#fff;margin:0 0 8px;padding:14px;position:relative}
.goods-main{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.goods-left{flex:1;min-width:0}
.goods-title{font-size:15px;font-weight:600;color:#222;line-height:1.4}
.goods-tag{display:inline-block;margin-top:8px;background:#e8f5e9;color:#2e7d32;font-size:12px;padding:4px 8px;border-radius:4px;max-width:100%;word-break:break-all}
.goods-mark{font-size:22px;font-weight:700;line-height:1;padding-top:2px;flex-shrink:0}
.goods-mark.red{color:#e64340}
.goods-mark.black{color:#222}
.goods-mark.none{color:#ccc;font-size:18px}
.goods-price-mini{font-size:16px;font-weight:700;color:#e64340;flex-shrink:0;padding-top:2px}
.goods-foot{display:flex;align-items:center;justify-content:space-between;margin-top:12px}
.goods-time{font-size:12px;color:#999}
.btn-public{display:inline-flex;align-items:center;gap:4px;background:linear-gradient(90deg,#ff7a6e,#e85d4c);color:#fff;border:0;border-radius:16px;padding:6px 14px;font-size:13px}
.btn-public:active{opacity:.9}

/* 推荐榜单 - 简洁列表（截图） */
.rank-list{background:#fff;margin:0;padding:0}
.rank-item{display:flex;align-items:center;justify-content:space-between;padding:14px 14px;border-bottom:1px solid #f0f0f0;gap:12px}
.rank-item:last-child{border-bottom:0}
.rank-left{flex:1;min-width:0}
.rank-title{font-size:15px;font-weight:600;color:#222;line-height:1.4}
.rank-time{margin-top:8px;font-size:12px;color:#999}
.rank-mark{font-size:22px;font-weight:700;line-height:1;flex-shrink:0}
.rank-mark.red{color:#e64340}
.rank-mark.black{color:#222}
.section.rank-mode{margin-top:0;padding:0;background:#fff}
.section.rank-mode .section-title{display:none}
.section.rank-mode .goods-list{margin:0;padding:0;background:#fff}
.section.rank-mode .load-more{background:#fff}

.empty,.loading{text-align:center;color:#999;padding:40px 0;font-size:13px}
.load-more{text-align:center;color:#aaa;padding:16px;font-size:12px}

/* tabbar */
.tabbar{position:fixed;left:0;right:0;bottom:0;height:56px;background:#fff;border-top:1px solid #eee;display:flex;z-index:100}
.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#999;font-size:11px;gap:2px}
.tab-item.active{color:#e85d4c}
.tab-item .icon{width:22px;height:22px;display:inline-block;background-size:contain;background-repeat:no-repeat;background-position:center;opacity:.7}
.tab-item.active .icon{opacity:1}
.icon-home{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23999' viewBox='0 0 24 24'%3E%3Cpath d='M12 3l9 8h-3v9h-5v-6H11v6H6v-9H3z'/%3E%3C/svg%3E")}
.tab-item.active .icon-home{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23e85d4c' viewBox='0 0 24 24'%3E%3Cpath d='M12 3l9 8h-3v9h-5v-6H11v6H6v-9H3z'/%3E%3C/svg%3E")}
.icon-cart{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23999' viewBox='0 0 24 24'%3E%3Cpath d='M7 18a2 2 0 100 4 2 2 0 000-4zm10 0a2 2 0 100 4 2 2 0 000-4zM7.2 14h9.9l1.7-8H6.1L5.3 2H2v2h2.2l2.9 10z'/%3E%3C/svg%3E")}
.tab-item.active .icon-cart{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23e85d4c' viewBox='0 0 24 24'%3E%3Cpath d='M7 18a2 2 0 100 4 2 2 0 000-4zm10 0a2 2 0 100 4 2 2 0 000-4zM7.2 14h9.9l1.7-8H6.1L5.3 2H2v2h2.2l2.9 10z'/%3E%3C/svg%3E")}
.icon-msg{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23999' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h16a2 2 0 012 2v10a2 2 0 01-2 2H8l-4 4V6a2 2 0 012-2z'/%3E%3C/svg%3E")}
.tab-item.active .icon-msg{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23e85d4c' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h16a2 2 0 012 2v10a2 2 0 01-2 2H8l-4 4V6a2 2 0 012-2z'/%3E%3C/svg%3E")}
.icon-mine{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23999' viewBox='0 0 24 24'%3E%3Cpath d='M12 12a5 5 0 100-10 5 5 0 000 10zm0 2c-5 0-9 2.5-9 5.5V22h18v-2.5c0-3-4-5.5-9-5.5z'/%3E%3C/svg%3E")}
.tab-item.active .icon-mine{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23e85d4c' viewBox='0 0 24 24'%3E%3Cpath d='M12 12a5 5 0 100-10 5 5 0 000 10zm0 2c-5 0-9 2.5-9 5.5V22h18v-2.5c0-3-4-5.5-9-5.5z'/%3E%3C/svg%3E")}

/* mine / login */
.panel{background:#fff;margin:10px 0;padding:16px}
.user-card{display:flex;align-items:center;gap:12px}
.avatar{width:64px;height:64px;border-radius:50%;background:#eee;object-fit:cover}
.user-name{font-size:18px;font-weight:600}
.user-sub{font-size:12px;color:#999;margin-top:4px}
.menu-list a{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid #f5f5f5;font-size:15px}
.menu-list a:last-child{border-bottom:0}
.btn-block{display:block;width:100%;text-align:center;background:linear-gradient(90deg,#07c160,#06ad56);color:#fff;border:0;border-radius:24px;padding:12px;font-size:16px;margin-top:20px}
.btn-block.gray{background:#999}
.btn-block.primary{background:linear-gradient(90deg,#ff7a6e,#e85d4c)}
.login-wrap{padding:40px 24px}
.login-logo{width:72px;height:72px;margin:0 auto 16px;border-radius:16px;background:#eee}
.login-title{text-align:center;font-size:20px;font-weight:700;margin-bottom:8px}
.login-desc{text-align:center;color:#888;font-size:13px;line-height:1.6;margin-bottom:30px}

/* cart */
.cart-item{background:#fff;margin-bottom:8px;padding:14px;display:flex;gap:10px}
.cart-item .info{flex:1}
.cart-item .price{color:#e85d4c;margin-top:6px}
.cart-bar{position:fixed;left:0;right:0;bottom:56px;background:#fff;border-top:1px solid #eee;display:flex;align-items:center;justify-content:space-between;padding:10px 14px;z-index:90}
.cart-bar .total{color:#e85d4c;font-weight:700}
.cart-bar .btn{background:#e85d4c;color:#fff;border:0;border-radius:18px;padding:8px 18px}

/* chat */
.chat-page{display:flex;flex-direction:column;height:100vh;padding-bottom:0}
.chat-body{flex:1;overflow-y:auto;padding:12px;background:#f5f5f5}
.chat-item{display:flex;margin-bottom:12px}
.chat-item.me{justify-content:flex-end}
.chat-bubble{max-width:75%;background:#fff;padding:10px 12px;border-radius:8px;line-height:1.5;word-break:break-word;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.chat-item.me .chat-bubble{background:#dcf8c6}
.chat-bubble .chat-img{display:block;max-width:180px;max-height:240px;border-radius:6px}
.chat-foot{display:flex;align-items:center;gap:8px;padding:10px;background:#fff;border-top:1px solid #eee}
.chat-pic-btn{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:20px;border-radius:50%;background:#f5f5f5;cursor:pointer;user-select:none}
.chat-pic-btn:active{opacity:.7}
.chat-foot input[type="text"],.chat-foot input:not([type]){flex:1;border:1px solid #eee;border-radius:18px;padding:8px 12px;outline:0;min-width:0}
.chat-foot button{flex-shrink:0;border:0;background:#e85d4c;color:#fff;border-radius:18px;padding:0 16px;height:36px}

/* detail */
.detail-card{background:#fff;padding:16px;margin-bottom:8px}
.detail-title{font-size:17px;font-weight:700;line-height:1.4}
.detail-price{color:#e85d4c;font-size:22px;font-weight:700;margin:12px 0}
.detail-row{font-size:13px;color:#666;margin-top:6px}
.content-box{margin-top:12px;padding:12px;background:#fafafa;border-radius:8px;letter-spacing:2px;font-size:18px;font-weight:600}
.bottom-actions{position:fixed;left:0;right:0;bottom:56px;background:#fff;display:flex;gap:10px;padding:10px 14px;border-top:1px solid #eee;z-index:95}
.bottom-actions button{flex:1;border:0;border-radius:22px;padding:12px;font-size:15px;color:#fff}
.bottom-actions .btn-cart{background:#ff9800}
.bottom-actions .btn-buy{background:#e85d4c}

/* 方案详情页（截图样式） */
.nav-red{position:sticky;top:0;z-index:50;background:#e64340;color:#fff;height:46px;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:600}
.nav-red .back{position:absolute;left:0;top:0;bottom:0;width:46px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:22px;font-weight:400}
.detail-page{background:#f5f5f5;padding-bottom:70px}
.detail-page.has-buybar{padding-bottom:130px}
.his-card .his-num.lock{font-size:14px;font-weight:500;color:#999;letter-spacing:0}
.detail-block{background:#fff;padding:14px;margin-bottom:8px}
.sec-title{display:flex;align-items:center;font-size:15px;font-weight:600;margin-bottom:12px}
.sec-title:before{content:"";width:3px;height:14px;border-radius:2px;margin-right:8px}
.sec-title.red:before{background:#e64340}
.sec-title.blue:before{background:#3b7cff}
.scheme-name{font-size:16px;font-weight:700;color:#222;line-height:1.4}
.scheme-time{margin-top:8px;font-size:12px;color:#999}
/* 未过期：红框大号号码 */
.num-box{margin-top:14px;border:1px solid #e64340;border-radius:6px;min-height:100px;padding:18px 16px;background:#fff}
.num-box .nums{font-size:32px;font-weight:800;color:#222;letter-spacing:4px;line-height:1.2;word-break:break-all}
.num-box .nums.lock{font-size:15px;font-weight:500;color:#999;letter-spacing:0}
.detail-tip{margin-top:12px;font-size:11px;line-height:1.65;color:#b0b0b0}
/* 历史方案卡（完整截图） */
.his-card{background:#fff;border-radius:8px;padding:12px 12px 10px;margin-bottom:10px;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.his-card .his-title{font-size:15px;font-weight:600;color:#222;padding-bottom:10px;border-bottom:1px solid #f0f0f0;line-height:1.4}
.his-card .his-body{display:flex;align-items:flex-start;justify-content:space-between;margin-top:12px;min-height:40px}
.his-card .his-num{font-size:22px;font-weight:800;letter-spacing:2px;color:#222}
.his-card .his-mark{font-size:22px;font-weight:700;line-height:1;margin-top:-4px}
.his-card .his-mark.red{color:#e64340}
.his-card .his-mark.black{color:#222}
.his-card .his-tag{display:inline-block;margin-top:10px;background:#8fd19e;color:#fff;font-size:12px;padding:5px 12px;border-radius:14px}
.his-card .his-foot{display:flex;align-items:center;justify-content:space-between;margin-top:12px}
.btn-public.pink{background:#f5a8a8;color:#fff;border-radius:14px;padding:5px 12px;font-size:12px}

/* 订单列表 */
.order-list-page{background:#f5f5f5;min-height:100vh}
.order-list{padding:10px 12px 24px}
.ol-card{background:#fff;border-radius:10px;padding:14px;margin-bottom:10px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.ol-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:12px;border-bottom:1px solid #f3f3f3}
.ol-no{font-size:13px;color:#666;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ol-status{flex-shrink:0;font-size:12px;font-weight:600}
.ol-status.wait{color:#e64340}
.ol-status.audit{color:#ff9800}
.ol-status.done{color:#07c160}
.ol-status.cancel{color:#999}
.ol-body{padding:14px 0 4px}
.ol-price{font-size:22px;font-weight:800;color:#222}
.ol-meta{display:flex;justify-content:space-between;margin-top:8px;font-size:12px;color:#999}
.ol-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid #f3f3f3}
.ol-btn{display:inline-flex;align-items:center;justify-content:center;min-width:76px;height:32px;padding:0 14px;border-radius:16px;font-size:13px}
.ol-btn.ghost{background:#fff;color:#666;border:1px solid #ddd}
.ol-btn.pay{background:#07c160;color:#fff;border:0}

/* 下单 / 支付 */
.order-items{margin-top:14px;border-top:1px solid #f0f0f0}
.order-item-row{display:flex;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid #f5f5f5}
.order-item-name{flex:1;font-size:14px;color:#222;line-height:1.4}
.order-item-price{flex-shrink:0;color:#e64340;font-weight:600}
.order-item-block{padding-bottom:8px;border-bottom:1px solid #f5f5f5;margin-bottom:4px}
.order-item-block:last-child{border-bottom:0}
.order-content-box{margin:8px 0 4px;padding:12px;border:1px solid #e64340;border-radius:6px;background:#fff}
.order-content-label{font-size:12px;color:#999;margin-bottom:6px}
.order-content-nums{font-size:22px;font-weight:800;color:#222;letter-spacing:3px;word-break:break-all}
.order-content-lock{margin-top:8px;font-size:12px;color:#999}
.pay-bottom{position:fixed;left:0;right:0;bottom:0;z-index:95;background:#fff;border-top:1px solid #eee;display:flex;align-items:center;justify-content:space-between;padding:10px 14px;padding-bottom:calc(10px + env(safe-area-inset-bottom))}
.pay-bottom-price{font-size:14px;color:#666}
.pay-bottom-price span{color:#e64340;font-size:20px;font-weight:700}
.btn-go-pay{border:0;background:#07c160;color:#fff;border-radius:22px;padding:10px 28px;font-size:15px}
.pay-page{padding-bottom:30px;background:#f5f5f5;min-height:100vh}
.pay-amount-card{text-align:center;padding:28px 16px}
.pay-amount-label{font-size:13px;color:#999}
.pay-amount{margin-top:8px;font-size:36px;font-weight:800;color:#222}
.wx-pay-btn{width:100%;display:flex;align-items:center;gap:10px;padding:14px 4px;border:0;background:transparent;font-size:16px;color:#222}
.wx-pay-btn.disabled{opacity:.45}
.wx-ico{width:28px;height:28px;border-radius:6px;background:#07c160;color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}
.wx-arrow{margin-left:auto;color:#ccc;font-size:22px}
.voucher-preview{margin-bottom:12px}
.voucher-preview img{max-width:220px;border-radius:8px;border:1px solid #eee}
.qr-mask{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:200;display:flex;align-items:center;justify-content:center;padding:24px}
.qr-dialog{width:100%;max-width:320px;background:#fff;border-radius:12px;padding:20px 18px;text-align:center}
.qr-title{font-size:16px;font-weight:700;color:#222}
.qr-amount{margin-top:8px;font-size:24px;font-weight:800;color:#e64340}
.qr-img-wrap{margin:16px auto;width:220px;height:220px;background:#fafafa;border:1px solid #eee;border-radius:8px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.qr-img-wrap img{max-width:100%;max-height:100%;object-fit:contain}
.qr-tip{font-size:12px;color:#999;line-height:1.5;margin-bottom:14px}

.toast{position:fixed;left:50%;top:45%;transform:translate(-50%,-50%);background:rgba(0,0,0,.75);color:#fff;padding:10px 16px;border-radius:8px;font-size:13px;z-index:9999;display:none}
