/* ============================================
   商城样式 v5 — 淘宝布局版
   ============================================ */

:root {
    --c-price: #fe2c55;
    --c-btn: #ff3b5c;
    --c-btn2: #2b2b2b;
    --c-bg: #f5f5f5;
    --c-card: #fff;
    --c-text: #222;
    --c-text2: #666;
    --c-text3: #999;
    --c-line: #f0f0f0;
    --r: 12px;
    --r2: 8px;
    --safe-b: env(safe-area-inset-bottom, 0px);
}

* { margin: 0; padding: 0; box-sizing: border-box; }
body {
    background: var(--c-bg);
    font-family: -apple-system, "PingFang SC", "Helvetica Neue", "Microsoft YaHei", sans-serif;
    -webkit-tap-highlight-color: transparent;
    color: var(--c-text); font-size: 14px; line-height: 1.5;
}

/* ======== 头部 ======== */
.tb-header {
    height: 44px; background: #fff;
    display: flex; align-items: center; padding: 0 12px;
    position: sticky; top: 0; z-index: 200;
    border-bottom: 1px solid var(--c-line);
}
.tb-header .back-btn {
    width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.tb-header .hd-title {
    flex: 1; text-align: center; font-size: 16px; font-weight: 600; color: var(--c-text);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.tb-header .hd-right { width: 30px; flex-shrink: 0; }

/* ======== 搜索栏(首页头部) ======== */
.tb-search-bar {
    flex: 1; height: 32px; margin: 0 8px;
    background: #f5f5f5; border-radius: 16px;
    display: flex; align-items: center; padding: 0 12px;
}
.tb-search-bar input {
    flex: 1; border: none; background: none; outline: none; font-size: 13px; color: #333;
}
.tb-search-bar input::placeholder { color: #bbb; }
.tb-search-bar .search-icon { width: 16px; height: 16px; color: #bbb; margin-right: 6px; flex-shrink: 0; }

/* ======== 横向分类（淘宝标签栏） ======== */
.tb-cate-bar {
    background: #fff; padding: 0;
    border-bottom: 1px solid var(--c-line);
    position: sticky; top: 44px; z-index: 100;
}
.tb-cate-scroll {
    display: flex; overflow-x: auto; padding: 0;
    -webkit-overflow-scrolling: touch;
}
.tb-cate-scroll::-webkit-scrollbar { display: none; }
.tb-cate-item {
    flex-shrink: 0; padding: 12px 16px; text-align: center;
    font-size: 14px; color: var(--c-text2); text-decoration: none;
    position: relative; white-space: nowrap;
    border-bottom: 2px solid transparent; transition: all 0.2s;
}
.tb-cate-item.active {
    color: var(--c-price); font-weight: 600;
    border-bottom-color: var(--c-price);
}

/* ======== 商品瀑布流 ======== */
.tb-goods-feed { padding: 8px; }
.goods-grid {
    display: grid; grid-template-columns: repeat(2, 1fr);
    gap: 8px;
}
.goods-item {
    background: #fff; border-radius: var(--r2); overflow: hidden;
}
.goods-item:active { opacity: 0.9; }
.goods-item a { display: block; text-decoration: none; color: var(--c-text); }
.goods-thumb {
    position: relative; width: 100%; padding-top: 100%;
    overflow: hidden; background: #f8f8f8;
}
.goods-thumb img {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover;
}
.goods-tag {
    position: absolute; bottom: 0; left: 0; right: 0;
    background: linear-gradient(transparent, rgba(0,0,0,0.4));
    color: #fff; padding: 16px 8px 6px; font-size: 10px;
    display: flex; gap: 4px;
}
.goods-tag span {
    background: var(--c-price); padding: 1px 6px; border-radius: 2px; font-weight: 500;
}
.goods-info { padding: 8px 8px 10px; }
.goods-name {
    font-size: 13px; line-height: 1.4; height: 36px;
    overflow: hidden; text-overflow: ellipsis;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
    color: var(--c-text); margin-bottom: 6px;
}
.goods-price-row {
    display: flex; align-items: baseline; justify-content: space-between;
}
.price-current { font-size: 16px; font-weight: 700; color: var(--c-price); }
.price-current::before { content: '¥'; font-size: 11px; }
.price-market { font-size: 10px; color: #ccc; text-decoration: line-through; margin-left: 4px; }
.goods-sales { font-size: 10px; color: var(--c-text3); white-space: nowrap; flex-shrink: 0; }

/* ======== 商品详情 ======== */
.dt-images { background: #fff; position: relative; }
.dt-images img { width: 100%; display: block; }

.dt-price-box {
    background: linear-gradient(135deg, #ffe8e8 0%, #fff0eb 100%);
    padding: 14px 16px 12px; position: relative;
}
.dt-price-row { display: flex; align-items: baseline; gap: 8px; }
.dt-price { font-size: 28px; font-weight: 800; color: var(--c-price); }
.dt-price::before { content: '¥'; font-size: 16px; }
.dt-price-orig { font-size: 13px; color: #bbb; text-decoration: line-through; }
.dt-price-tag {
    display: inline-block; background: var(--c-price); color: #fff;
    font-size: 10px; padding: 2px 6px; border-radius: 2px; margin-left: 6px; font-weight: 500;
}
.dt-sold { font-size: 12px; color: var(--c-text3); margin-top: 6px; }

.dt-title-box { background: #fff; padding: 12px 16px; }
.dt-title {
    font-size: 16px; font-weight: 600; line-height: 1.5; color: var(--c-text);
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.dt-label {
    display: inline-block; font-size: 10px; color: #fff; padding: 1px 4px;
    border-radius: 2px; margin-right: 4px; vertical-align: middle;
    background: var(--c-price);
}

/* 详情信息行 */
.dt-info-card {
    background: #fff; margin-top: 10px;
}
.dt-info-row {
    display: flex; align-items: center; padding: 14px 16px;
    border-bottom: 1px solid var(--c-line); cursor: pointer;
}
.dt-info-row:last-child { border-bottom: none; }
.dt-info-label { font-size: 13px; color: var(--c-text3); width: 50px; flex-shrink: 0; }
.dt-info-value { flex: 1; font-size: 13px; color: var(--c-text); }
.dt-info-arrow { color: #ccc; font-size: 16px; margin-left: 8px; }

/* 规格选择 */
.goods-spec-list { padding: 0 16px 12px; }
.spec-title { font-size: 14px; color: var(--c-text); font-weight: 500; margin-bottom: 10px; }
.spec-items { display: flex; flex-wrap: wrap; gap: 8px; }
.spec-item {
    padding: 6px 16px; border: 1px solid #e0e0e0; border-radius: 20px;
    font-size: 13px; color: var(--c-text2); cursor: pointer; background: #fafafa;
}
.spec-item.active {
    border-color: var(--c-price); color: var(--c-price); background: #fff0f0;
}

/* 详情底部三按钮 */
.dt-footer {
    position: fixed; bottom: 0; left: 0; right: 0;
    background: #fff; border-top: 1px solid var(--c-line);
    display: flex; align-items: stretch; z-index: 100;
    padding-bottom: var(--safe-b);
}
.dt-footer-icons {
    display: flex; align-items: center;
}
.dt-footer-icon {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    width: 56px; padding: 6px 0; font-size: 10px; color: var(--c-text2);
    text-decoration: none; position: relative;
}
.dt-footer-icon svg { margin-bottom: 2px; }
.dt-footer-icon .badge {
    position: absolute; top: 2px; right: 8px;
    background: var(--c-price); color: #fff; font-size: 9px;
    min-width: 14px; height: 14px; border-radius: 7px;
    display: flex; align-items: center; justify-content: center; padding: 0 3px;
}
.dt-footer-btns {
    flex: 1; display: flex; padding: 6px 10px 6px 0; gap: 0;
}
.dt-btn-cart, .dt-btn-buy {
    flex: 1; border: none; padding: 10px 0; font-size: 14px; font-weight: 600;
    cursor: pointer; color: #fff; text-align: center;
}
.dt-btn-cart {
    background: linear-gradient(135deg, #ffa940 0%, #ff7a00 100%);
    border-radius: 20px 0 0 20px;
}
.dt-btn-buy {
    background: linear-gradient(135deg, #ff4d4f 0%, #cf1322 100%);
    border-radius: 0 20px 20px 0;
}
.dt-btn-cart:active, .dt-btn-buy:active { opacity: 0.85; }

/* 商品描述区 */
.dt-content {
    background: #fff; margin-top: 10px; padding: 0;
}
.dt-content-title {
    padding: 14px 16px; font-size: 15px; font-weight: 600; color: var(--c-text);
    border-bottom: 1px solid var(--c-line);
    display: flex; align-items: center; gap: 6px;
}
.dt-content-title::before {
    content: ''; width: 3px; height: 14px; background: var(--c-price); border-radius: 2px;
}
.dt-content-body { padding: 16px; font-size: 14px; line-height: 1.8; color: var(--c-text2); }
.dt-content-body img { max-width: 100%; display: block; margin: 8px 0; }

/* ======== 购物车 ======== */
.cart-list { padding: 10px 12px; padding-bottom: 70px; }
.cart-item {
    display: flex; align-items: flex-start; padding: 12px;
    background: #fff; border-radius: var(--r2); margin-bottom: 10px;
}
.cart-checkbox {
    width: 18px; height: 18px; margin-right: 10px; margin-top: 18px;
    accent-color: var(--c-price); cursor: pointer; flex-shrink: 0;
}
.cart-thumb {
    width: 80px; height: 80px; border-radius: 6px;
    overflow: hidden; margin-right: 10px; flex-shrink: 0; background: #f8f8f8;
}
.cart-thumb img { width: 100%; height: 100%; object-fit: cover; }
.cart-info { flex: 1; min-width: 0; }
.cart-name {
    font-size: 13px; line-height: 1.4; color: var(--c-text);
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.cart-spec {
    font-size: 11px; color: var(--c-text3); background: #f5f5f5;
    display: inline-block; padding: 2px 6px; border-radius: 2px; margin-top: 4px;
}
.cart-bottom { display: flex; justify-content: space-between; align-items: center; margin-top: 8px; }
.cart-price { font-size: 15px; color: var(--c-price); font-weight: 700; }
.cart-price::before { content: '¥'; font-size: 11px; }

/* 数量控件 */
.cart-num { display: flex; align-items: center; border: 1px solid #e5e5e5; border-radius: 4px; overflow: hidden; }
.num-btn {
    width: 28px; height: 26px; border: none; background: #fafafa;
    font-size: 15px; cursor: pointer; color: #666;
    display: flex; align-items: center; justify-content: center;
}
.num-btn:active { background: #eee; }
.num-input {
    width: 36px; height: 26px; text-align: center;
    border: none; border-left: 1px solid #e5e5e5; border-right: 1px solid #e5e5e5;
    outline: none; font-size: 13px; background: #fff;
}

/* 购物车底栏 */
.cart-footer {
    position: fixed; bottom: 0; left: 0; right: 0;
    background: #fff; border-top: 1px solid var(--c-line);
    padding: 8px 12px; display: flex; align-items: center; justify-content: space-between;
    z-index: 100; padding-bottom: calc(8px + var(--safe-b));
}
.cart-total { font-size: 13px; color: var(--c-text2); }
.cart-total-price { font-size: 18px; color: var(--c-price); font-weight: 700; }
.cart-total-price::before { content: '¥'; font-size: 12px; }
.cart-submit {
    background: linear-gradient(135deg, #ff4d4f 0%, #cf1322 100%);
    color: #fff; border: none; padding: 10px 28px; border-radius: 20px;
    font-size: 14px; font-weight: 600; cursor: pointer;
}
.cart-submit:disabled { background: #ccc; cursor: not-allowed; }
.cart-submit:active:not(:disabled) { opacity: 0.85; }

/* ======== 订单标签页 ======== */
.order-tabs {
    display: flex; background: #fff;
    border-bottom: 1px solid var(--c-line);
    position: sticky; top: 44px; z-index: 99;
}
.order-tab {
    flex: 1; padding: 12px 0; text-align: center;
    font-size: 14px; color: var(--c-text3); text-decoration: none;
    border-bottom: 2px solid transparent;
}
.order-tab.active { color: var(--c-text); border-bottom-color: var(--c-text); font-weight: 600; }

/* ======== 订单列表 ======== */
.order-list { padding: 10px 12px; }
.order-item {
    background: #fff; margin-bottom: 10px; border-radius: var(--r2);
    overflow: hidden;
}
.order-header {
    display: flex; justify-content: space-between; align-items: center;
    padding: 12px 12px 0;
}
.order-shop { font-size: 14px; font-weight: 600; color: var(--c-text); display: flex; align-items: center; gap: 4px; }
.order-status { font-size: 13px; color: var(--c-price); font-weight: 500; }

.order-goods { padding: 10px 12px; }
.order-goods-item { display: flex; padding: 6px 0; align-items: flex-start; }
.order-goods-item + .order-goods-item { border-top: 1px solid var(--c-line); padding-top: 10px; }
.order-goods-thumb {
    width: 70px; height: 70px; border-radius: 6px;
    overflow: hidden; margin-right: 10px; flex-shrink: 0; background: #f8f8f8;
}
.order-goods-thumb img { width: 100%; height: 100%; object-fit: cover; }
.order-goods-info { flex: 1; min-width: 0; }
.order-goods-name {
    font-size: 13px; line-height: 1.4; color: var(--c-text);
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.order-goods-spec { font-size: 11px; color: var(--c-text3); margin-top: 3px; }
.order-goods-price { text-align: right; flex-shrink: 0; margin-left: 8px; }
.order-goods-price div:first-child { font-size: 13px; color: var(--c-text); font-weight: 500; }

.order-footer {
    display: flex; justify-content: space-between; align-items: center;
    padding: 10px 12px 12px; border-top: 1px solid var(--c-line);
}
.order-total { font-size: 13px; color: var(--c-text2); }
.order-total b { color: var(--c-text); font-size: 15px; }
.order-actions { display: flex; gap: 8px; }
.order-btn {
    padding: 6px 14px; border: 1px solid #ddd; border-radius: 16px;
    font-size: 12px; background: #fff; cursor: pointer; color: var(--c-text2);
    text-decoration: none; display: inline-block;
}
.order-btn.primary {
    background: linear-gradient(135deg, #ff4d4f 0%, #cf1322 100%);
    border-color: transparent; color: #fff;
}

/* ======== 空状态 ======== */
.empty-state { text-align: center; padding: 60px 20px; }
.empty-state .empty-icon { font-size: 56px; margin-bottom: 16px; opacity: 0.4; }
.empty-state .empty-text { font-size: 14px; color: var(--c-text3); margin-bottom: 20px; }
.empty-state .empty-btn {
    display: inline-block; background: var(--c-btn); color: #fff;
    padding: 10px 32px; border-radius: 20px; text-decoration: none; font-size: 14px; font-weight: 500;
}

/* ======== 结算/立即购买 通用 ======== */
.ck-card {
    background: #fff; border-radius: var(--r2); margin: 10px 12px; overflow: hidden;
}
/* 彩虹条地址卡 */
.ck-addr-card {
    background: #fff; margin: 10px 12px; border-radius: var(--r2);
    position: relative; padding: 16px 16px 18px; overflow: hidden;
}
.ck-addr-card::after {
    content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 3px;
    background: repeating-linear-gradient(90deg,
        #ff6b6b 0, #ff6b6b 20%,
        #ffa502 20%, #ffa502 40%,
        #2ed573 40%, #2ed573 60%,
        #1e90ff 60%, #1e90ff 80%,
        #a855f7 80%, #a855f7 100%
    );
}
.ck-addr-info { display: flex; align-items: flex-start; gap: 10px; }
.ck-addr-icon { font-size: 20px; flex-shrink: 0; margin-top: 2px; }
.ck-addr-text { flex: 1; }
.ck-addr-name { font-size: 15px; font-weight: 600; color: var(--c-text); margin-bottom: 4px; }
.ck-addr-name span { font-weight: 400; color: var(--c-text2); margin-left: 8px; font-size: 13px; }
.ck-addr-detail { font-size: 13px; color: var(--c-text2); line-height: 1.5; }
.ck-addr-arrow { color: #ccc; font-size: 18px; margin-top: 6px; }
.ck-addr-card { cursor: pointer; }

/* 地址选择面板 */
.addr-panel-mask { display:none; position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(0,0,0,.45); z-index:900; }
.addr-panel-mask.show { display:block; }
.addr-panel { position:fixed; left:0; right:0; bottom:0; background:#fff; border-radius:16px 16px 0 0; z-index:901; transform:translateY(100%); transition:transform .3s ease; max-height:65vh; display:flex; flex-direction:column; }
.addr-panel.show { transform:translateY(0); }
.addr-panel-header { display:flex; justify-content:space-between; align-items:center; padding:16px 18px; font-size:15px; font-weight:600; color:#333; border-bottom:1px solid var(--c-line); flex-shrink:0; }
.addr-panel-close { font-size:22px; color:#999; cursor:pointer; width:28px; height:28px; display:flex; align-items:center; justify-content:center; }
.addr-panel-list { overflow-y:auto; flex:1; padding:8px 0; }
.addr-panel-item { display:flex; align-items:center; padding:14px 18px; gap:12px; cursor:pointer; transition:background .15s; }
.addr-panel-item:active { background:#f8f8f8; }
.addr-panel-radio { width:20px; height:20px; border-radius:50%; border:2px solid #ddd; display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:all .2s; }
.addr-panel-radio span { width:10px; height:10px; border-radius:50%; background:transparent; transition:all .2s; }
.addr-panel-item.selected .addr-panel-radio { border-color:var(--c-price); }
.addr-panel-item.selected .addr-panel-radio span { background:var(--c-price); }
.addr-panel-info { flex:1; min-width:0; }
.addr-panel-name { font-size:14px; font-weight:600; color:#333; }
.addr-panel-name span { font-weight:400; color:#888; margin-left:8px; font-size:12px; }
.addr-panel-detail { font-size:12px; color:#999; margin-top:3px; line-height:1.4; }
.addr-panel-tag { flex-shrink:0; background:#fff0f0; color:var(--c-price); font-size:10px; padding:2px 6px; border-radius:2px; }
.addr-panel-add { display:block; text-align:center; padding:14px; color:var(--c-price); font-size:14px; text-decoration:none; border-top:1px solid var(--c-line); flex-shrink:0; }

.ck-section-title {
    font-size: 14px; font-weight: 600; color: var(--c-text);
    padding: 14px 14px 10px; border-bottom: 1px solid var(--c-line);
}
.ck-goods-item { display: flex; align-items: center; padding: 10px 14px; }
.ck-goods-item + .ck-goods-item { border-top: 1px solid var(--c-line); }
.ck-goods-thumb { width: 64px; height: 64px; border-radius: 6px; overflow: hidden; margin-right: 10px; flex-shrink: 0; background: #f8f8f8; }
.ck-goods-thumb img { width: 100%; height: 100%; object-fit: cover; }
.ck-goods-info { flex: 1; min-width: 0; }
.ck-goods-name { font-size: 13px; color: var(--c-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ck-goods-spec { font-size: 11px; color: var(--c-text3); margin-top: 2px; }
.ck-goods-right { text-align: right; flex-shrink: 0; margin-left: 8px; }
.ck-goods-price { font-size: 13px; color: var(--c-text); font-weight: 500; }
.ck-goods-qty { font-size: 11px; color: var(--c-text3); }

/* 底部价格栏 */
.ck-footer {
    position: fixed; bottom: 0; left: 0; right: 0;
    background: #fff; border-top: 1px solid var(--c-line);
    padding: 8px 12px; display: flex; justify-content: space-between; align-items: center;
    z-index: 100; padding-bottom: calc(8px + var(--safe-b));
}
.ck-total-text { font-size: 13px; color: var(--c-text2); }
.ck-total-price { font-size: 18px; color: var(--c-price); font-weight: 700; }
.ck-total-price::before { content: '¥'; font-size: 12px; }
.ck-submit-btn {
    background: linear-gradient(135deg, #ff4d4f 0%, #cf1322 100%);
    color: #fff; border: none; padding: 10px 28px; border-radius: 20px;
    font-size: 14px; font-weight: 600; cursor: pointer;
}
.ck-submit-btn:disabled { background: #ccc; }
.ck-submit-btn:active:not(:disabled) { opacity: 0.85; }

/* 订单备注 */
.ck-remark {
    width: 100%; padding: 10px 14px; border: none; outline: none;
    font-size: 13px; resize: none; min-height: 40px; font-family: inherit;
    background: #fff; color: var(--c-text);
}
.ck-remark::placeholder { color: #ccc; }

/* ======== 支付 ======== */
.pay-card { background: #fff; border-radius: var(--r2); margin: 10px 12px; overflow: hidden; }
.pay-amount { text-align: center; padding: 24px 16px 20px; }
.pay-amount-label { font-size: 13px; color: var(--c-text3); margin-bottom: 6px; }
.pay-amount-price { font-size: 32px; font-weight: 800; color: var(--c-price); }
.pay-amount-price::before { content: '¥'; font-size: 18px; }

.pay-method-btn {
    display: flex; align-items: center; width: calc(100% - 24px); margin: 0 12px 10px;
    height: 48px; border-radius: 24px; text-decoration: none;
    color: #fff; font-size: 14px; font-weight: 600; padding: 0 20px;
}
.pay-method-btn:active { opacity: 0.85; }
.pay-method-btn .pay-icon { margin-right: 10px; font-size: 18px; display:flex; align-items:center; }
.pay-method-btn .pay-icon svg { width:24px; height:24px; }
.pay-wx, .pay-other-wx { background: #07c160; }
.pay-zfb, .pay-ali, .pay-other-ali { background: #1677ff; }
.pay-paypal { background: #ffc439; color: #333; }
.pay-stripe { background: #635bff; }

/* ======== 订单详情 ======== */
.od-card { background: #fff; border-radius: var(--r2); margin: 10px 12px; overflow: hidden; }
.od-section-title {
    font-size: 14px; font-weight: 600; color: var(--c-text);
    padding: 14px 14px 10px; border-bottom: 1px solid var(--c-line);
    display: flex; align-items: center; gap: 6px;
}
.od-row { display: flex; padding: 10px 14px; font-size: 13px; }
.od-label { color: var(--c-text3); width: 70px; flex-shrink: 0; }
.od-value { color: var(--c-text); flex: 1; word-break: break-all; }
.od-badge {
    display: inline-block; font-size: 11px; padding: 2px 8px;
    border-radius: 4px; font-weight: 500;
}
.od-badge-warn { background: #fff7e6; color: #d46b08; }
.od-badge-info { background: #e6f7ff; color: #0050b3; }
.od-badge-ok { background: #f6ffed; color: #389e0d; }

.od-goods-item { display: flex; align-items: center; padding: 10px 14px; }
.od-goods-item + .od-goods-item { border-top: 1px solid var(--c-line); }
.od-goods-thumb { width: 64px; height: 64px; border-radius: 6px; overflow: hidden; margin-right: 10px; flex-shrink: 0; background: #f8f8f8; }
.od-goods-thumb img { width: 100%; height: 100%; object-fit: cover; }
.od-goods-info { flex: 1; min-width: 0; }
.od-goods-name { font-size: 13px; color: var(--c-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.od-goods-bottom { display: flex; justify-content: space-between; margin-top: 6px; }
.od-goods-price { font-size: 13px; color: var(--c-price); font-weight: 600; }
.od-goods-qty { font-size: 12px; color: var(--c-text3); }
.od-total { text-align: right; padding: 10px 14px; border-top: 1px solid var(--c-line); font-size: 13px; color: var(--c-text2); }
.od-total b { color: var(--c-text); font-size: 16px; }
.od-actions { display: flex; gap: 10px; padding: 12px; }
.od-btn {
    flex: 1; padding: 11px; text-align: center; border-radius: 20px;
    text-decoration: none; font-size: 14px; font-weight: 600; border: none; cursor: pointer;
}
.od-btn-primary { background: linear-gradient(135deg, #ff4d4f 0%, #cf1322 100%); color: #fff; }
.od-btn-default { background: #f5f5f5; color: var(--c-text2); }
.od-btn:active { opacity: 0.85; }

/* ======== 响应式 ======== */
@media (min-width: 768px) {
    .goods-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1024px) {
    .goods-grid { grid-template-columns: repeat(4, 1fr); }
    .tb-goods-feed, .cart-list, .order-list { max-width: 960px; margin: 0 auto; }
}
