*{box-sizing:border-box}html,body{margin:0;padding:0;background:#f5f6f8;color:#222;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}.mobile-page{max-width:760px;margin:0 auto;min-height:100vh;background:#f5f6f8}.notice{height:48px;background:#fff;border-bottom:1px solid #eee;display:flex;align-items:center;padding:0 14px;gap:12px;overflow:hidden}.notice-label{font-weight:800;white-space:nowrap;color:#222}.notice-label b{color:#ef4444}.notice-text{color:#ef4444;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}.search-wrap{background:#fff;padding:14px 16px}.search-form{display:flex;gap:8px}.search-box{position:relative;flex:1}.search-box input{width:100%;height:44px;border:1px solid #edf0f4;border-radius:10px;background:#f7f8fa;padding:0 15px 0 42px;font-size:16px;outline:none}.search-box:before{content:'⌕';position:absolute;left:14px;top:7px;font-size:26px;color:#a6abb4}.search-btn{border:0;background:transparent;color:#58606e;font-size:16px;padding:0 4px}.categories{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;background:#fff;padding:16px 12px 18px;border-top:1px solid #f3f3f3}.category-item{text-decoration:none;color:#252525;text-align:center;min-width:0;overflow:hidden}.category-icon{width:52px;height:52px;max-width:52px;max-height:52px;overflow:hidden;margin:0 auto 8px;border-radius:12px;background:linear-gradient(145deg,#eff6ff,#e0e7ff);display:flex;align-items:center;justify-content:center;font-size:28px;box-shadow:0 4px 12px rgba(59,130,246,.08)}.category-icon img,.category-icon img.category-image{width:52px!important;height:52px!important;max-width:52px!important;max-height:52px!important;display:block!important;object-fit:cover!important;border-radius:12px!important}.category-icon span{line-height:1}.category-item.active .category-icon{outline:2px solid #1e9fff}.category-name{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sortbar{display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border-top:1px solid #eee;border-bottom:1px solid #eee}.sortbar a{height:48px;display:flex;align-items:center;justify-content:center;color:#666;text-decoration:none;position:relative}.sortbar a+a:before{content:'';position:absolute;left:0;height:24px;width:1px;background:#e5e7eb}.sortbar a.active{color:#1e9fff;font-weight:600}.product-count{text-align:center;color:#f97316;font-size:16px;font-weight:700;padding:14px 0 12px}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0 12px 24px}.product-card{background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 2px 10px rgba(15,23,42,.04);display:flex;flex-direction:column;min-width:0}.product-image{aspect-ratio:1/1;display:block;width:100%;object-fit:cover;background:#eaf6ff}.product-body{padding:10px;display:flex;flex-direction:column;flex:1}.product-title{font-size:15px;line-height:1.45;font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:43px}.product-subtitle{font-size:12px;color:#9298a2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:4px}.product-bottom{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:10px}.price{font-size:17px;color:#ff4d4f;font-weight:800;white-space:nowrap}.buy-btn{border:0;border-radius:5px;background:#1e9fff;color:#fff;padding:7px 10px;font-size:14px;white-space:nowrap;text-decoration:none}.empty{grid-column:1/-1;background:#fff;border-radius:12px;padding:50px 20px;text-align:center;color:#9298a2}.page-card{background:#fff;margin:14px;border-radius:14px;padding:18px;box-shadow:0 4px 18px rgba(15,23,42,.05)}.page-title{font-size:20px;font-weight:800;margin:0 0 16px}.order-product{display:flex;gap:14px;padding-bottom:16px;border-bottom:1px solid #eee;margin-bottom:16px}.order-product img{width:92px;height:92px;border-radius:10px;object-fit:cover}.order-product h3{margin:2px 0 8px;font-size:17px}.form-row{margin-bottom:14px}.form-row label{display:block;font-size:14px;font-weight:600;margin-bottom:7px}.form-row input,.form-row textarea{width:100%;border:1px solid #dfe3e8;border-radius:9px;padding:11px 12px;font-size:16px;outline:none;background:#fff}.form-row textarea{min-height:88px;resize:vertical}.primary-submit{width:100%;border:0;border-radius:10px;background:#1e9fff;color:#fff;height:48px;font-size:17px;font-weight:700}.payment-amount{text-align:center;padding:10px 0}.payment-amount .amount{font-size:34px;color:#ff4d4f;font-weight:800}.qr-box{width:min(76vw,310px);height:min(76vw,310px);margin:14px auto;border:1px solid #e5e7eb;border-radius:14px;padding:10px;background:#fff}.qr-box img{width:100%;height:100%;object-fit:contain}.payment-tip{background:#fff7ed;color:#9a3412;border-radius:9px;padding:12px;line-height:1.6;font-size:14px}.proof-preview{max-width:100%;border-radius:10px;margin-top:10px}.order-meta{background:#f8fafc;border-radius:10px;padding:12px;line-height:1.9;color:#596273;font-size:14px}.back-link{display:inline-block;margin:14px;color:#1e9fff;text-decoration:none}@media(max-width:460px){.category-icon img,.category-icon img.category-image{width:48px!important;height:48px!important;max-width:48px!important;max-height:48px!important}.product-grid{gap:8px;padding-left:8px;padding-right:8px}.product-body{padding:8px}.product-title{font-size:14px}.price{font-size:15px}.buy-btn{padding:6px 8px}.categories{gap:8px;padding-left:8px;padding-right:8px}.category-icon{width:48px;height:48px}}@media(max-width:350px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* 首页公告：单行省略，点击后弹窗查看完整内容 */
.notice-text{display:block;min-width:0;flex:1;border:0;background:transparent;padding:8px 0;margin:0;color:#ef4444;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:inherit;font-size:14px;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}
.notice-text:focus-visible{outline:2px solid #1e9fff;outline-offset:2px;border-radius:4px}
body.modal-open{overflow:hidden}
.announcement-modal{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;padding:22px}
.announcement-modal.is-open{display:flex}
.announcement-mask{position:absolute;inset:0;background:rgba(15,23,42,.52);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.announcement-dialog{position:relative;width:min(100%,460px);max-height:min(76vh,620px);display:flex;flex-direction:column;background:#fff;border-radius:16px;box-shadow:0 24px 70px rgba(15,23,42,.28);overflow:hidden;animation:announcement-in .18s ease-out}
.announcement-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid #eef0f3}
.announcement-header h2{margin:0;font-size:18px;line-height:1.4;color:#1f2937}
.announcement-close{width:34px;height:34px;display:flex;align-items:center;justify-content:center;flex:0 0 34px;border:0;border-radius:50%;background:#f3f4f6;color:#6b7280;font-size:26px;line-height:1;cursor:pointer}
.announcement-content{padding:18px;overflow-y:auto;color:#374151;font-size:15px;line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere;-webkit-overflow-scrolling:touch}
.announcement-footer{padding:0 18px 18px}
.announcement-confirm{width:100%;height:44px;border:0;border-radius:10px;background:#1e9fff;color:#fff;font-size:16px;font-weight:600;cursor:pointer}
@keyframes announcement-in{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:460px){.announcement-modal{padding:18px}.announcement-dialog{max-height:78vh;border-radius:14px}.announcement-content{padding:16px;font-size:15px}}
