/*
 * Killimall app mode (PWA phases 2–3): the look of Kilimall's Android app 5.14 (net.kilimall.shop), 1dp = 1 CSS px,
 * read from its layout files. Every rule is scoped to html.km-app, which the snippet at the top of each phone page
 * sets before anything is drawn (scripts/app-links.js) — so the installed app never flashes the website's look first,
 * and the phone website (no km-app) is unchanged. Loaded on every page; does nothing outside app mode.
 *
 *   frame     tab bar (activity_main_v3: 50dp, 7dp top padding, 1dp #e9eaee line, 10sp, #ff6047 / #333, the app's
 *             28dp icons, the selected Home is our logo, the label "Category"); title bar (layout_common_title:
 *             50dp, ic_back_black_22x22, 17sp bold #333, 1dp #f5f5f5 line) on the pages' plain white bars only —
 *             a page with its own coloured bar (Flash Sales) keeps it
 *   3.1 home  layout_home_search, item_home_category_grid, layout_home_flash_sale(_time), item_home_flash_sale,
 *             item_home_like_title, item_recommend_stagger_list
 *   3.2 cats  fragment_category, item_first_category, item_second_category, item_third_category
 */
.km-standalone [data-km-app-place]{display:none!important}
/* the product page's app bars are hidden inside the app: release the room the page keeps for them */
.km-standalone .search-bar-wrapper.has-top-app-bar,.km-standalone .swiper-box.has-top-app-bar{top:0!important;margin-top:0!important}
.km-standalone .operation-bar.show-app-bar{bottom:0!important}
/* the app's tab label */
.km-app .van-tabbar-item:nth-child(2) .van-tabbar-item__text{font-size:0!important}
.km-app .van-tabbar-item:nth-child(2) .van-tabbar-item__text::after{content:"Category";font-size:10px;line-height:12px}
.km-app .van-tabbar{height:50px;padding-top:7px;box-sizing:border-box;background:#fff;border-top:1px solid #e9eaee}
.km-app .van-tabbar::after,.km-app .van-tabbar--border::after{display:none}
.km-app .van-tabbar-item{justify-content:flex-start;font-size:10px;line-height:12px;color:#333}
.km-app .van-tabbar-item--active{color:#ff6047}
.km-app .van-tabbar-item .van-icon{display:none}
.km-app .van-tabbar-item::before{content:"";display:block;width:28px;height:28px;margin-bottom:1px;background:center/contain no-repeat}
.km-app .van-tabbar-item__icon{display:none}
.km-app .van-tabbar-item__text,.km-app .van-tabbar-item__text *{font-size:10px;line-height:12px;margin:0!important}
.km-app .van-tabbar-item:nth-child(1)::before{background-image:url(/images/app/tab-home-normal.png)}
.km-app .van-tabbar-item:nth-child(1).van-tabbar-item--active::before{background-image:url(/images/app/tab-home-select.png)}
.km-app .van-tabbar-item:nth-child(2)::before{background-image:url(/images/app/tab-category-normal.png)}
.km-app .van-tabbar-item:nth-child(2).van-tabbar-item--active::before{background-image:url(/images/app/tab-category-select.png)}
.km-app .van-tabbar-item:nth-child(3)::before{background-image:url(/images/app/tab-message-normal.png)}
.km-app .van-tabbar-item:nth-child(3).van-tabbar-item--active::before{background-image:url(/images/app/tab-message-select.png)}
.km-app .van-tabbar-item:nth-child(4)::before{background-image:url(/images/app/tab-cart-normal.png)}
.km-app .van-tabbar-item:nth-child(4).van-tabbar-item--active::before{background-image:url(/images/app/tab-cart-select.png)}
.km-app .van-tabbar-item:nth-child(5)::before{background-image:url(/images/app/tab-account-normal.png)}
.km-app .van-tabbar-item:nth-child(5).van-tabbar-item--active::before{background-image:url(/images/app/tab-account-select.png)}
.km-app .van-nav-bar[style*="background-color: white"] .van-nav-bar__content,.km-app .van-nav-bar[style*="background-color:white"] .van-nav-bar__content,.km-app .van-nav-bar[style*="background-color:#fff"] .van-nav-bar__content,.km-app .van-nav-bar[style*="background-color: rgb(255, 255, 255)"] .van-nav-bar__content,.km-app .van-nav-bar[style=""] .van-nav-bar__content{height:50px}
.km-app .van-nav-bar[style*="background-color: white"],.km-app .van-nav-bar[style*="background-color:white"],.km-app .van-nav-bar[style*="background-color:#fff"],.km-app .van-nav-bar[style*="background-color: rgb(255, 255, 255)"],.km-app .van-nav-bar[style=""]{border-bottom:1px solid #f5f5f5}
.km-app .van-nav-bar[style*="background-color: white"]::after,.km-app .van-nav-bar[style*="background-color:white"]::after,.km-app .van-nav-bar[style*="background-color:#fff"]::after,.km-app .van-nav-bar[style*="background-color: rgb(255, 255, 255)"]::after,.km-app .van-nav-bar[style=""]::after{display:none}
.km-app .van-nav-bar[style*="background-color: white"] .van-nav-bar__title,.km-app .van-nav-bar[style*="background-color:white"] .van-nav-bar__title,.km-app .van-nav-bar[style*="background-color:#fff"] .van-nav-bar__title,.km-app .van-nav-bar[style*="background-color: rgb(255, 255, 255)"] .van-nav-bar__title,.km-app .van-nav-bar[style=""] .van-nav-bar__title{max-width:calc(100% - 100px);font-size:17px;font-weight:700;color:#333}
.km-app .van-nav-bar[style*="background-color: white"] .van-nav-bar__title *,.km-app .van-nav-bar[style*="background-color:white"] .van-nav-bar__title *,.km-app .van-nav-bar[style*="background-color:#fff"] .van-nav-bar__title *,.km-app .van-nav-bar[style*="background-color: rgb(255, 255, 255)"] .van-nav-bar__title *,.km-app .van-nav-bar[style=""] .van-nav-bar__title *{font-size:17px!important;font-weight:700!important;color:#333!important}
.km-app .van-nav-bar[style*="background-color: white"] .van-nav-bar__left,.km-app .van-nav-bar[style*="background-color:white"] .van-nav-bar__left,.km-app .van-nav-bar[style*="background-color:#fff"] .van-nav-bar__left,.km-app .van-nav-bar[style*="background-color: rgb(255, 255, 255)"] .van-nav-bar__left,.km-app .van-nav-bar[style=""] .van-nav-bar__left{padding:0 0 0 5px}
.km-app .van-nav-bar[style*="background-color: white"] .van-nav-bar__left .van-icon-arrow-left,.km-app .van-nav-bar[style*="background-color:white"] .van-nav-bar__left .van-icon-arrow-left,.km-app .van-nav-bar[style*="background-color:#fff"] .van-nav-bar__left .van-icon-arrow-left,.km-app .van-nav-bar[style*="background-color: rgb(255, 255, 255)"] .van-nav-bar__left .van-icon-arrow-left,.km-app .van-nav-bar[style=""] .van-nav-bar__left .van-icon-arrow-left{width:32px;height:32px;font-size:0!important;background:url(/images/app/back.png) center/22px 22px no-repeat}
.km-app .van-nav-bar[style*="background-color: white"] .van-nav-bar__left .van-icon-arrow-left::before,.km-app .van-nav-bar[style*="background-color:white"] .van-nav-bar__left .van-icon-arrow-left::before,.km-app .van-nav-bar[style*="background-color:#fff"] .van-nav-bar__left .van-icon-arrow-left::before,.km-app .van-nav-bar[style*="background-color: rgb(255, 255, 255)"] .van-nav-bar__left .van-icon-arrow-left::before,.km-app .van-nav-bar[style=""] .van-nav-bar__left .van-icon-arrow-left::before{content:none}
.km-app .home-div{background:#f5f5f5}
.km-app .home-div .search-bar,.km-app .home-div .search-div{background:#fff}
.km-app .home-div .input-div{padding:0;margin:0}
.km-app .home-div .van-search{padding:6px 10px;background:#fff}
.km-app .home-div .van-search__content{height:40px!important;border:0!important;border-radius:6px!important;background:rgba(232,232,232,.6)!important;padding-left:12px!important;display:flex;align-items:center}
.km-app .home-div .van-search__field{background:transparent!important;padding:0!important;height:40px;align-items:center}
.km-app .home-div .van-search__action{display:none}
.km-app .home-div .van-field__left-icon{display:flex!important;align-items:center;margin-right:8px}
.km-app .home-div .van-field__left-icon .van-icon{display:block!important;font-size:20px!important;color:#999!important}
.km-app .home-div .van-field__control{font-size:16px}
.km-app .home-div .van-field__control::placeholder{color:#999}
.km-app .home-div .tab-max-div:not(.km-app-tabs){display:none}
.km-app .home-div .wh-card{margin:8px 10px 0!important;width:auto!important}
.km-app .home-div .icon-list,.km-app .home-div .card-div,.km-app .home-div .banner-div{border-radius:6px;overflow:hidden}
.km-app .home-div .icon-name,.km-app .home-div .icon-name *{font-size:11px!important;line-height:13px;color:#333}
.km-app .home-div .flash-info>div:first-child{font-size:0}
.km-app .home-div .flash-info>div:first-child::before{content:"Closing in";font-size:12px;color:#999;margin-right:4px}
.km-app .home-div .flash-date{font-size:12px;color:#7e7e7e}
.km-app .home-div .flash-date span{display:inline-block;padding:0 3px;border-radius:2px;background:#333;color:#fff;font-size:12px;line-height:17px}
.km-app .home-div .flash-sale-li .product-price{font-size:14px!important;font-weight:700;color:#f33c48!important}
.km-app .home-div .k__yml-title{margin:8px 10px 0;padding:20px 0;background:#fff;font-size:0}
.km-app .home-div .k__yml-title::after{content:"You May Like";display:inline-block;margin:0 0 0 10px;padding-right:48px;width:auto;height:auto;font-size:15px;font-weight:600;color:#333;background:url(/images/app/may-like-right.png) right center/36px 3px no-repeat}
.km-app .home-div .k__yml-title::before{width:36px;height:3px;margin:0;background:url(/images/app/may-like-left.png) center/36px 3px no-repeat}
.km-app .home-div .k__yml-title{display:flex;align-items:center;justify-content:center;border-radius:6px}
.km-app .home-div .product-li-default .product-item{border-radius:6px;overflow:hidden}
.km-app .home-div .product-li-default .product-info{padding:0 5px 6px}
.km-app .home-div .product-li-default .product-name{margin-top:8px;font-size:14px!important;line-height:18px;color:#333;-webkit-line-clamp:2}
.km-app .home-div .product-li-default .price-main{margin-top:4px;font-size:18px!important;font-weight:700;color:#150000!important}
.km-app .km-app-search{display:flex;align-items:center;height:40px;margin:6px 10px;padding-left:12px;border-radius:6px;background:rgba(232,232,232,.6);color:#999;font-size:16px;text-decoration:none}
.km-app .km-app-search-bar{position:sticky;top:0;z-index:10;background:#fff;padding:0.1px 0}
.km-app .km-app-search .van-icon{font-size:20px;margin-right:8px}
.km-app .category-content .sidebar{width:80px!important;min-width:80px;background:#fff}
.km-app .category-content .base-category{position:relative;height:65px!important;padding:0!important;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff!important}
.km-app .category-content .base-category img{width:25px!important;height:25px!important;object-fit:contain;margin:0!important}
.km-app .category-content .base-category .category-name{margin:3px 10px 0!important;width:auto!important;font-size:9px!important;line-height:11px!important;color:#333!important;text-align:center;overflow:hidden;word-break:normal!important;overflow-wrap:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.km-app .category-content .act-base-category::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#e14646}
.km-app .category-content{background:#f5f5f5}
.km-app .category-content .categorys{margin:0 10px!important;padding-top:10px}
.km-app .category-content .category-child{border-radius:6px!important;padding:10px 0!important;margin:0 0 10px!important}
.km-app .category-content .category-child .van-cell{padding:0 6px 10px!important;border-bottom:1px solid #f2f2f2}
.km-app .category-content .category-child .van-cell::after{display:none}
.km-app .category-content .category-child .van-cell__title,.km-app .category-content .category-child .van-cell__title *{font-size:16px!important;font-weight:700;color:#333!important}
.km-app .category-content .category-child .van-cell__right-icon{display:none}
.km-app .category-content .category-child .van-cell::before{content:"All";order:2;font-size:13px;color:#a9a9a9;align-self:center}
.km-app .category-content .last-category-item{padding:10px 8px 0!important}
.km-app .category-content .last-category-item img{width:70px!important;height:70px!important;object-fit:contain;margin:0 auto!important;display:block}
.km-app .category-content .last-category-item .category-name{height:35px;margin-top:4px!important;padding:0 2px;font-size:10px!important;line-height:12px!important;color:#333!important;text-align:center;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.km-app .van-tabbar-item--active,.km-app .van-tabbar-item--active *{color:#ff6047!important}
/* 3.3 search results (activity_goods_list, layout_search_sort_type_popwindow, item_goods_list): the search field
   35dp, #f2f2f2 with 6dp corners (shape_search_bg), 14sp; a 40dp sort bar whose "Best Match" (the current order)
   is 14sp #dd3131 with the red down arrow (ic_arrow_red_down); the sort list: white 14sp rows 1dp apart on #eaeaee,
   20dp in from the left, the chosen one #dd3131 with the tick (ic_goods_list_sort_checked), over a 30% black shade;
   cards (shape_item_goods_list) white with 2dp corners, name 14sp #333 in two lines, price 16sp bold #dd3131 */
.km-app .header-div .van-search__content{background:#f2f2f2!important;border-radius:6px!important;height:35px}
.km-app .header-div .van-field__control{font-size:14px!important}
.km-app .search-header .van-dropdown-menu__bar{height:40px;box-shadow:none;display:flex;align-items:center;padding:0 10px;border-bottom:.5px solid #f5f5f5}
.km-app .km-app-sort{display:flex;align-items:center;padding:3px;border:0;background:none;font-size:14px;color:#dd3131}
.km-app .km-app-sort::after{content:"";width:14px;height:14px;margin-left:5px;background:url(/images/app/arrow-red-down.png) center/contain no-repeat}
.km-app .km-app-sort-shade{position:fixed;left:0;right:0;bottom:0;z-index:1999;background:rgba(0,0,0,.3)}
.km-app .km-app-sort-panel{position:fixed;left:0;right:0;z-index:2000;background:#eaeaee}
.km-app .km-app-sort-row{display:flex;justify-content:space-between;align-items:center;margin-top:1px;padding:10px 10px 10px 20px;background:#fff;font-size:14px;color:#333}
.km-app .km-app-sort-row.km-on{color:#dd3131}
.km-app .km-app-sort-row.km-on::after{content:"";width:14px;height:14px;background:url(/images/app/sort-checked.png) center/contain no-repeat}
.km-app .product-list .product-item{border-radius:2px;overflow:hidden}
.km-app .product-list .product-name{margin-top:8px;font-size:14px!important;line-height:18px;color:#333!important}
.km-app .product-list .price-main{margin-top:6px;font-size:16px!important;font-weight:700;color:#dd3131!important}
/* 3.4 product page (activity_common_goods_details): over the pictures, the app's 30dp see-through icons
   (ic_transparent_*_90x90) on a 48dp bar: back 5dp from the left; share, search, wish, menu, each 12dp apart;
   cards (shape_goods_details_card) white with 10dp corners, 10dp apart and 10dp from the sides on #f5f5f5;
   price 20sp bold #dd3131, struck price 12sp #999, discount 12sp #e02020, name 16sp #333, review count 14sp #999;
   the scrolled bar's search field 35dp, #eaeaea, 20dp corners (shape_search_white_bg); the bottom bar
   (layout_details_bottom): Chat / Store / Cart, 22dp icons (ic_details_*) over 12sp #999 words, 15dp apart, the
   cart count 19dp #e14646 with a white edge (shape_round_yellow_white); the two buttons share one #f87622 → #e02020
   bar with 22dp ends (shape_goods_detail_add_cart_bg_black): "Add To Cart" 15sp bold #e83e02 on white inset 2dp,
   "Order Now" 15sp bold white */
.km-app .swiper-box>.back{top:9px!important;left:5px!important;width:30px!important;height:30px!important;background:url(/images/app/pd-back.png) center/30px 30px no-repeat!important}
.km-app .swiper-box>.back .van-icon,.km-app .quick-operations .van-icon{font-size:0!important}
.km-app .quick-operations{top:9px!important;right:0!important}
.km-app .quick-operations .quick-btn{width:30px!important;height:30px!important;margin:0 12px 0 0!important;padding:0!important;background:none!important}
.km-app .quick-operations>.quick-btn:nth-child(3){order:-1}
.km-app .quick-operations .van-icon{width:30px;height:30px;background-position:center;background-size:30px 30px;background-repeat:no-repeat}
.km-app .quick-operations .van-icon-share-o{background-image:url(/images/app/pd-share.png)}
.km-app .quick-operations .van-icon-search{background-image:url(/images/app/pd-search.png)}
.km-app .quick-operations .van-icon-like-o{background-image:url(/images/app/pd-wish.png)}
.km-app .quick-operations .van-icon-like{background-image:url(/images/app/pd-wished.png)}
.km-app .quick-operations .van-icon-ellipsis{background-image:url(/images/app/pd-menu.png)}
.km-app .content-wrapper .info-card{margin:10px!important;border-radius:10px!important}
.km-app .content-wrapper .sale-price{font-size:20px!important;font-weight:700!important;color:#dd3131!important}
.km-app .content-wrapper .del-price{font-size:12px!important;color:#999!important}
.km-app .content-wrapper .discount{font-size:12px!important;color:#e02020!important}
.km-app .content-wrapper .product-title{font-size:16px!important;line-height:21px!important;color:#333!important}
.km-app .content-wrapper .reviews-info{font-size:14px!important;color:#999!important}
.km-app .search-bar-content .search-input{height:35px!important;background:#eaeaea!important;border-radius:20px!important}
.km-app .search-bar-content .search-text{font-size:14px;color:#999}
.km-app .operation-bar{height:auto!important;padding:10px 10px 10px 0!important;border-top:.5px solid #f2f2f2}
.km-app .operation-bar .icon{width:auto!important;margin-left:15px;font-size:12px!important;color:#999!important}
.km-app .operation-bar .icon span{margin-top:2px}
.km-app .operation-bar .icon .van-icon{display:block;width:22px;height:22px;font-size:0!important;background-position:center;background-size:22px 22px;background-repeat:no-repeat}
.km-app .operation-bar .icon>.van-badge__wrapper{display:block;line-height:0}
.km-app .operation-bar .van-icon-chat-o{background-image:url(/images/app/pd-chat.png)}
.km-app .operation-bar .van-icon-shop-o{background-image:url(/images/app/pd-store.png)}
.km-app .operation-bar .van-icon-cart-o{background-image:url(/images/app/pd-cart.png)}
.km-app .operation-bar .van-badge{min-width:19px;height:19px;padding:0 4px;border:1px solid #fff;border-radius:10px;background:#e14646!important;font-size:10px;line-height:17px}
.km-app .operation-bar .opt-bar{margin-left:20px;height:auto!important;line-height:normal!important;border:0!important;border-radius:22px!important;background:linear-gradient(90deg,#f87622,#e02020)}
.km-app .operation-bar .opt-btn{padding:10px 0;font-size:15px!important;font-weight:700!important}
.km-app .operation-bar .add-car-btn{margin:2px;padding:8px 0;border-radius:20px 0 0 20px;background:#fff;color:#e83e02!important}
.km-app .operation-bar .red-btn{background:none!important;color:#fff!important}
.km-app .search-bar-content .search-bar>.back{order:-3}
.km-app .search-bar-content .search-bar>.search-input{order:-2}
.km-app .search-bar-content .search-bar>.quick-btn:nth-child(4){order:-1}
/* tab badges (phase 2 fix): the app's icons are drawn by the tab itself, so the cart and message counts sit on
   the tab, at the icon's top right, instead of on the hidden web icons or over the word */
.km-app .van-tabbar-item{position:relative}
.km-app .van-tabbar-item .van-badge__wrapper{position:static}
.km-app .van-tabbar-item .van-tabbar-item__icon:has(.van-badge){display:block;height:0;margin:0}
.km-app .van-tabbar-item .van-badge--fixed{top:3px!important;left:calc(50% + 6px)!important;right:auto!important;transform:none!important}
/* 3.5 cart (fragment_cart, item_cart_store, item_cart_goods, layout_cart_bottom): stores are white cards with 6dp
   corners, 10dp from the sides; the store row: the store picture (ic_order_store) 20dp, the name 14sp #333 and the
   arrow (ic_order_arrow_right); rows 6dp/10dp padded: the app's 18dp round tick (ic_shopping_cart_select2 /
   _normal2), the picture 90dp with 6dp corners, the name 14sp bold #150000 on one line, the variant 11sp #999 on
   #f5f7f9 with 2dp corners, the price 18sp bold #dd3131 at 90 %, the quantity box 0.5dp #999 with 4dp corners and
   22dp buttons; no per-store subtotal; the bottom bar's total 22sp bold, "Check Out" 14sp bold white on the
   #f76900 → #dd3131 pill (shape_button_gradient_red_round), 16dp/8dp padded */
.km-app .cart-list{padding:0 10px}
.km-app .cart-list .store-container{margin:6px 0 10px;border-radius:6px;overflow:hidden;background:#fff!important}
.km-app .cart-list .header-box{padding:10px 10px 0!important;border:0!important}
.km-app .cart-list .km-store-ic{width:20px;height:20px;font-size:0!important;background:url(/images/app/cart-store.png) center/20px 20px no-repeat}
.km-app .cart-list .store-name{margin-left:4px!important;font-size:14px!important;color:#333!important}
.km-app .cart-list .inner-header .van-icon-arrow{width:18px;height:18px;font-size:0!important;background:url(/images/app/cart-arrow-right.png) center/18px 18px no-repeat}
.km-app .cart-list .product-item{padding:6px 10px!important;background:#fff!important}
.km-app .cart-list .van-checkbox__icon{width:18px;height:18px;font-size:0!important;line-height:18px}
.km-app .cart-list .van-checkbox__icon .van-icon{width:18px;height:18px;border:0!important;background:url(/images/app/cart-check-off.png) center/18px 18px no-repeat!important;font-size:0!important}
.km-app .cart-list .van-checkbox__icon--checked .van-icon{background-image:url(/images/app/cart-check-on.png)!important}
.km-app .cart-list .product-img{width:90px!important;min-width:90px!important;height:90px!important;margin:0 0 0 10px!important;flex-shrink:0}
.km-app .cart-list .product-item .content{min-width:0;max-width:none!important;margin-left:6px;align-self:stretch;justify-content:flex-start!important}
.km-app .cart-list .content-infos{margin-top:6px}
.km-app .cart-list .product-img img{width:90px!important;height:90px!important;border-radius:6px;object-fit:cover}
.km-app .cart-list .product-title{display:block!important;font-size:14px!important;font-weight:700!important;line-height:18px!important;color:#150000!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:unset!important}
.km-app .cart-list .sku-spec:not(:empty){padding:1px 6px;border-radius:2px;background:#f5f7f9;font-size:11px!important;color:#999!important}
.km-app .cart-list .price-count .price{font-size:18px!important;font-weight:700!important;color:rgba(221,49,49,.9)!important}
.km-app .cart-list .van-stepper{display:flex;border:.5px solid #999;border-radius:4px;overflow:hidden}
.km-app .cart-list .van-stepper__minus,.km-app .cart-list .van-stepper__plus{width:22px!important;height:22px!important;margin:0!important;background:none!important;color:#333}
.km-app .cart-list .van-stepper__input{width:30px!important;height:22px!important;margin:0!important;border-left:.5px solid #e9eaee;border-right:.5px solid #e9eaee;background:none!important;font-size:14px!important;color:#150000!important}
.km-app .cart-list .fee-total{display:none!important}
.km-app .check-out-bar .price-span{font-size:22px!important;font-weight:700!important;color:rgba(221,49,49,.9)!important}
.km-app .check-out-bar .checkout-btn{padding:8px 16px!important;border-radius:30px!important;background:linear-gradient(45deg,#f76900,#dd3131)!important;font-size:14px!important;font-weight:700!important;line-height:normal!important;height:auto!important}
.km-app .cart-list .price-count{flex:1 1 100%;display:flex;justify-content:space-between;align-items:center}
/* 3.6 checkout (activity_place_order, layout_place_order_*, item_place_order_*): the address sits in its card at the
   top of the page, not in a bar pinned under the title (the app pins one only after scrolling); the app's pin
   (ic_place_order_address, 20dp) and pencil (ic_place_order_address_edit); cards (shape_home_card) white with 6dp
   corners, 10dp from the sides and apart; titles 16sp bold #150000; "Trusted Payment…" 14sp #999 after the shield
   (ic_pay_safe); payment rows: logo 50×30dp, name 14sp #150000, the 20dp round tick (ic_checkbox_normal /
   _checked); store name 16sp bold #150000 after the store picture; order lines: picture 74dp with 2dp corners, name
   13sp #150000 in two lines, price 15sp bold #150000, "x 1" 14sp #333; the bottom bar's total 24sp bold #dd3131 and
   "Place Order" 18sp bold white on #ea4c19 → #dd3131 with 4dp corners (shape_button_place_order_bg), 20dp/10dp padded */
.km-app .address-card-box .k__order-address-xd-card{position:static!important;padding:0!important;border:0!important;background:none!important;align-items:flex-start}
.km-app .address-card-box{min-height:0!important}
.km-app .k__order-address-xd-card .icon{width:20px;height:20px;flex-shrink:0;background:url(/images/app/po-address.png) center/20px 20px no-repeat}
.km-app .k__order-address-xd-card .icon .van-icon,.km-app .k__order-address-xd-card .edit-btn .van-icon{font-size:0!important}
.km-app .k__order-address-xd-card .address-detail{margin:0 30px 0 5px!important;font-size:14px!important;line-height:20px;color:#150000!important}
.km-app .k__order-address-xd-card .edit-btn{position:absolute;top:8px;right:8px;width:20px;height:20px;background:url(/images/app/po-address-edit.png) center/20px 20px no-repeat}
.km-app .address-card-box{position:relative}
.km-app .page-wrapper .card-box{margin:10px!important;border-radius:6px!important}
.km-app .page-wrapper .base-title{font-size:16px!important;font-weight:700!important;color:#150000!important}
.km-app .page-wrapper .base-title .desc{display:flex;align-items:center;margin-top:2px;font-size:14px!important;font-weight:400;color:#999!important}
.km-app .page-wrapper .base-title .desc::before{content:"";width:14px;height:14px;margin-right:2px;background:url(/images/app/pay-safe.png) center/14px 14px no-repeat}
.km-app .payment-methods-list .pay-item-info .icon img{width:50px!important;height:30px!important;object-fit:contain}
.km-app .payment-methods-list .method-name{font-size:14px!important;font-weight:400!important;color:#150000!important}
.km-app .payment-methods-list .van-radio__icon{width:20px;height:20px;font-size:0!important;line-height:20px}
.km-app .payment-methods-list .van-radio__icon .van-icon{width:20px;height:20px;border:0!important;background:url(/images/app/pay-check-off.png) center/20px 20px no-repeat!important;font-size:0!important}
.km-app .payment-methods-list .van-radio__icon--checked .van-icon{background-image:url(/images/app/pay-check-on.png)!important}
.km-app .store-items .store-header .van-icon-shop-o{width:20px;height:20px;font-size:0!important;background:url(/images/app/cart-store.png) center/20px 20px no-repeat}
.km-app .store-items .store-name{margin-left:6px!important;font-size:16px!important;font-weight:700!important;color:#150000!important}
.km-app .store-items .sku-img,.km-app .store-items .sku-img img{width:74px!important;height:74px!important;border-radius:2px;object-fit:cover}
.km-app .store-items .sku-title{margin:0 6px;font-size:13px!important;line-height:17px;color:#150000!important}
.km-app .store-items .price-value{font-size:15px!important;font-weight:700!important;color:#150000!important}
.km-app .store-items .sku-count{font-size:14px!important;color:#333!important}
.km-app .place-order .price{font-size:24px!important;font-weight:700!important;color:#dd3131!important}
.km-app .place-order .van-button{height:auto!important;padding:10px 20px!important;border:0!important;border-radius:4px!important;background:linear-gradient(45deg,#ea4c19,#dd3131)!important;font-size:18px!important;font-weight:700!important}
.km-app .store-items>div+div .store-header{margin-top:12px}
/* 3.7 My Orders (activity_order_list_v2, item_paid_order_list_v2, item_un_paid_order_list_v2, item_order_list_of_goods):
   the tab strip white, 10dp padded, words 14sp #666, the chosen one #150000 over a 26dp × 2dp #150000 line, one row
   (the strip scrolls); orders are white blocks 10dp padded and 10dp apart; store row: the app's 16dp store picture
   (ic_order_details_stores), name 16sp #333, status 13sp #666; order number 14sp #999; lines: picture 68dp with 2dp
   corners, name 16sp #333 in two lines; the total 14sp #333 with the amount 16sp bold #dd3131 over a 1dp #f2f2f2
   line; buttons 13sp, 12dp/4dp padded, round: Cancel #fe1743 outlined (shape_stroke_red_ff05_20dp), Pay Now 14sp
   white on #f87622 → #e02020 (shape_goods_detail_add_cart_bg_black), Track Order white on #e14646 (data_shape_red) */
.km-app .order-list-page .van-tabs__wrap{height:auto!important;padding:10px 0;background:#fff}
.km-app .order-list-page .van-tab{flex:none!important;padding:0 18px!important;white-space:nowrap;font-size:14px!important;font-weight:400!important;color:#666!important}
.km-app .order-list-page .van-tab--active{color:#150000!important}
.km-app .order-list-page .van-tab__text,.km-app .order-list-page .tab-title-div{white-space:nowrap;font-size:14px!important}
.km-app .order-list-page .van-tabs__line{bottom:0!important;height:2px!important;background:linear-gradient(#150000,#150000) center/26px 2px no-repeat!important}
.km-app .order-list-page .order-list{margin-top:6px}
.km-app .k__order-item-card{margin:0 0 10px!important;padding:10px!important;border-radius:0!important;box-shadow:none!important}
.km-app .k__order-item-card .store-icon{width:16px;height:16px;margin:0!important;font-size:0!important;background:url(/images/app/order-store.png) center/16px 16px no-repeat}
.km-app .k__order-item-card .store-name{margin:0 4px 0 6px!important;font-size:16px!important;color:#333!important}
.km-app .k__order-item-card .status{font-size:13px!important;color:#666!important}
.km-app .k__order-item-card .order-title{margin-top:6px!important;font-size:14px!important;color:#999!important}
.km-app .k__order-item-card .product-item{padding-top:6px}
.km-app .k__order-item-card .img-div{width:68px!important;height:68px!important;flex-shrink:0}
.km-app .k__order-item-card .img-div img{border-radius:2px;object-fit:cover!important}
.km-app .k__order-item-card .info{height:auto!important;margin-left:6px!important}
.km-app .k__order-item-card .info .bottom{margin-top:6px!important;font-size:14px}
.km-app .k__order-item-card .info .top .left{font-size:16px!important;line-height:20px;color:#333!important}
.km-app .k__order-item-card .product-order-bottom{margin-top:10px;border-top:1px solid #f2f2f2!important;font-size:14px!important;color:#333}
.km-app .k__order-item-card .product-order-bottom .price{font-size:16px!important;font-weight:700!important;color:#dd3131!important}
.km-app .k__order-item-card .bottom-btn-div button{height:auto!important;margin-left:10px!important;padding:4px 12px!important;border:1px solid #fe1743!important;border-radius:20px!important;background:#fff!important;font-size:13px!important;line-height:18px;color:#fe1743!important}
.km-app .k__order-item-card .bottom-btn-div .red-btn{border:0!important;background:linear-gradient(90deg,#f87622,#e02020)!important;font-size:14px!important;color:#fff!important}
.km-app .k__order-item-card .bottom-btn-div .green-btn{border:0!important;background:#e14646!important;color:#fff!important}
/* 3.7 order detail (activity_order_details_kt, layout_order_details_*, item_order_details_goods_info): the title
   18sp bold #150000; the address row: the app's 20dp pin (ic_order_address), name 16sp bold #150000, phone 14sp, the
   address 12sp #666; store name 16sp bold #150000 after the store picture; lines: picture 70dp with 2dp corners, name
   14sp #150000, price 14sp bold, count 12sp #999; the cost rows 14sp, keys #333; buttons 14sp, 10dp/6dp padded:
   Cancel #666 outlined with 6dp corners (shape_gray_66_1dp_white), Pay Now white on #f76900 → #dd3131 with 4dp
   corners (shape_button_red_bg), Track Order #44b65b outlined (shape_button_stroke_44b65b) */
.km-app .order-detail-wap .header-div .title{font-size:18px!important}
.km-app .order-detail-wap .address-info .location-icon{width:20px;height:20px;font-size:0!important;background:url(/images/app/order-address.png) center/20px 20px no-repeat}
.km-app .order-detail-wap .address-info .name{font-size:16px!important}
.km-app .order-detail-wap .address-info .phone{font-size:14px!important}
.km-app .order-detail-wap .address-info .address{font-size:12px!important;color:#666!important}
.km-app .order-detail-wap .store .store-icon{width:20px;height:20px;font-size:0!important;background:url(/images/app/cart-store.png) center/20px 20px no-repeat}
.km-app .order-detail-wap .store-name{margin-left:6px!important;font-size:16px!important;color:#150000!important}
.km-app .order-detail-wap .img-div{width:70px!important;height:70px!important;flex-shrink:0}
.km-app .order-detail-wap .img-div img{border-radius:2px;object-fit:cover!important}
.km-app .order-detail-wap .info .top .left{font-size:14px!important}
.km-app .order-detail-wap .info .top .right{font-size:14px!important}
.km-app .order-detail-wap .info .bottom .right{font-size:12px!important}
.km-app .order-detail-wap .price-info .label,.km-app .order-detail-wap .price-info .value{font-size:14px!important}
.km-app .order-detail-wap .price-info .label{color:#333!important}
.km-app .order-detail-wap .bottom-btn-right .van-button{height:auto!important;padding:6px 10px!important;border:1px solid #666!important;border-radius:6px!important;font-size:14px!important;line-height:20px;color:#666!important;background:#fff!important}
.km-app .order-detail-wap .bottom-btn-right .red-btn{border:0!important;border-radius:4px!important;background:linear-gradient(45deg,#f76900,#dd3131)!important;color:#fff!important}
.km-app .order-detail-wap .bottom-btn-right .green-btn{border-color:#44b65b!important;color:#44b65b!important}
/* 3.8 Account tab (fragment_account, item_account_grid_view): the top card is the app's picture (bg_account_top,
   6dp corners) 166dp tall, 10dp from the sides; the 50dp avatar 25dp in; the name 17sp bold white; the three
   shortcuts 12sp white under the app's icons (ic_my_wishlist, ic_followed_stores, ic_recently_viewed); cards
   (shape_white_8dp) 8dp corners, 10dp apart; titles 16sp medium #333; "View All" 12sp #a9a9a9 with the app's arrow
   (ic_home_general_arrow); grid words 13sp #333; assets 18sp #e14646 over 14sp #333. The order-status pictures stay
   the website's: the app takes them from Kilimall's server, so only two of them are in the app itself */
.km-app .user-center-div .header-card{height:166px!important;margin:10px!important;padding:0!important;border-radius:6px!important;background:url(/images/app/account-top.jpg) center/100% 100% no-repeat!important;overflow:hidden}
.km-app .user-center-div .cart-top{margin:0!important;padding:25px 0 0 25px!important}
.km-app .user-center-div .top-logo,.km-app .user-center-div .top-logo img{width:50px!important;height:50px!important;margin:0!important}
.km-app .user-center-div .top-name{margin-left:5px!important;font-size:17px!important;font-weight:700!important;color:#fff!important}
.km-app .user-center-div .top-icon{top:15px!important;right:15px!important;width:26px;height:26px;display:flex;align-items:center;justify-content:center}
.km-app .user-center-div .top-icon .van-icon{font-size:22px!important}
.km-app .user-center-div .cart-number{position:absolute!important;left:0;right:0;top:auto!important;bottom:22px!important;height:auto!important;margin:0!important;padding:0!important}
.km-app .user-center-div .header-card{position:relative}
.km-app .user-center-div .cart-number .wishlist,.km-app .user-center-div .cart-number .store{font-size:12px!important;color:#fff!important}
.km-app .user-center-div .cart-number .van-icon{width:24px;height:24px;margin-bottom:4px;font-size:0!important;background:center/24px 24px no-repeat}
.km-app .user-center-div .cart-number .van-icon-like-o{background-image:url(/images/app/account-wishlist.png)}
.km-app .user-center-div .cart-number .van-icon-shop-collect-o{background-image:url(/images/app/account-followed.png)}
.km-app .user-center-div .cart-number .van-icon-underway-o{background-image:url(/images/app/account-recent.png)}
.km-app .user-center-div .card-div{margin:0 10px 10px!important;border-radius:8px!important;box-shadow:none!important}
.km-app .user-center-div .card-header .left{font-size:16px!important;font-weight:500!important;color:#333!important}
.km-app .user-center-div .card-header .right{display:flex;align-items:center;justify-content:flex-end;font-size:12px!important;color:#a9a9a9!important}
.km-app .user-center-div .card-header .more-icon{width:12px;height:12px;margin-left:2px;font-size:0!important;background:url(/images/app/account-arrow.png) center/12px 12px no-repeat}
.km-app .user-center-div .icon-div p,.km-app .user-center-div .icon-div span{font-size:13px!important;color:#333!important}
.km-app .user-center-div .assets-item .number{font-size:18px!important;color:#e14646!important}
.km-app .user-center-div .assets-item .name{margin-top:6px;font-size:14px!important;color:#333!important}
.km-app .user-center-div .header-card,.km-app .user-center-div .card-div{width:auto!important;box-sizing:border-box}
/* 3.8 Setting (activity_settings): white rows 44dp tall; the sign-out button 44dp, 30dp from the sides, 10dp below,
   its word #333. The rows themselves stay the website's (the app's list differs: dark mode, profiles, policies…) */
.km-app .content[data-v-4a3c2924] .van-cell{min-height:44px;align-items:center}
.km-app .btn-div[data-v-4a3c2924]{margin:10px 30px 0!important;padding:0!important}
.km-app .btn-div[data-v-4a3c2924] .van-button{height:44px!important;color:#333!important}
/* 3.9 home leftovers (layout_home_tab, item_home_shortcut): the tab strip 34dp under the search bar, words 14sp #666
   9dp apart, the chosen one 16sp bold #333 over a 23dp × 3dp #f35656 mark, the app's "all" arrow at the end;
   the shortcuts in one card, columns of two 88dp wide that scroll sideways, icons 34dp, words 10sp #333 */
.km-app .home-div .km-app-tabs{background:#fff}
.km-app .home-div .km-app-tabs .van-tabs__wrap{height:34px!important;margin-right:36px}
.km-app .home-div .km-app-tabs .van-tabs__nav{display:flex;overflow-x:auto;scrollbar-width:none;height:34px;padding:0!important;background:#fff}
.km-app .home-div .km-app-tabs .van-tabs__nav::-webkit-scrollbar{display:none}
.km-app .home-div .km-app-tabs .van-tab{position:relative;flex:none!important;padding:0 9px!important;font-size:14px!important;line-height:34px;color:#666!important;text-decoration:none}
.km-app .home-div .km-app-tabs .van-tab--active{font-size:16px!important;font-weight:700!important;color:#333!important}
.km-app .home-div .km-app-tabs .van-tab--active::after{content:"";position:absolute;left:50%;bottom:0;width:23px;height:3px;margin-left:-11.5px;border-radius:3px 3px 0 0;background:#f35656}
.km-app .home-div .km-app-tab-all{position:absolute;top:0;right:10px;width:26px;height:34px;background:#fff url(/images/app/home-tab-all.png) center/20px 20px no-repeat;box-shadow:-7px 0 7px -4px rgba(0,0,0,.12)}
.km-app .home-div .km-app-tabs .van-tabs,.km-app .home-div .km-app-tabs>div{position:relative}
.km-app .home-div .km-app-shortcuts{display:grid!important;grid-auto-flow:column;grid-template-rows:repeat(2,auto);grid-auto-columns:88px;overflow-x:auto;scrollbar-width:none}
.km-app .home-div .km-app-shortcuts::-webkit-scrollbar{display:none}
.km-app .home-div .km-app-shortcuts .icon-item{min-width:0!important;width:88px;margin:0!important;padding:4px 0 0}
.km-app .home-div .km-app-shortcuts .icon img,.km-app .home-div .km-app-shortcuts .icon{width:34px!important;height:34px!important;margin:0 auto}
.km-app .home-div .km-app-shortcuts .icon-name{height:26px;margin-top:2px;padding:0 6px;font-size:10px!important;line-height:13px;color:#333!important}
/* 3.9 Messages tab (msg_fragment_center, msg_room_list_system/_title/_empty): a tab, so no back arrow; rows white,
   8dp padded, the icon 34dp 16dp from the left, the name 16sp #333, a 14dp arrow at the end; the unread count a red
   bubble (#e14646, 9sp white) and nothing when there is none; "Chats with Sellers" 16sp bold #333 */
.km-app .van-nav-bar:has(+ .msg-page) .van-nav-bar__left{visibility:hidden}
.km-app .msg-page .sys-msg-item{position:relative;padding:8px 40px 8px 16px!important;background:#fff}
.km-app .msg-page .sys-msg-item .icon{width:34px!important;height:34px!important;margin-right:10px!important}
.km-app .msg-page .sys-msg-item .msg-name{font-size:16px!important;color:#333!important}
.km-app .msg-page .sys-msg-item::after{content:"";position:absolute;right:16px;top:50%;width:14px;height:14px;margin-top:-7px;background:url(/images/app/cart-arrow-right.png) center/14px 14px no-repeat}
.km-app .msg-page .num{font-size:0!important}
.km-app .msg-page .num:not([data-km-n="0"])::after{content:attr(data-km-n);position:absolute;right:38px;top:50%;min-width:8px;height:14px;margin-top:-7px;padding:0 5px;border-radius:9px;background:#e14646;font-size:9px;line-height:14px;color:#fff;text-align:center}
.km-app .msg-page .msg-title{font-size:16px!important;font-weight:700!important;color:#333!important}
/* 3.9 store page (activity_store, fragment_store_products): the search field 35dp, #e8e8e8 at 60 % with 6dp corners
   (shape_home_search_normal), 16sp; the app's share picture; logo 54dp; name 16sp bold #333; totals 12sp #999;
   the score 11sp #924a00 on #ffe5cd → #ffcb9a (shape_gradient_store_score); Follow 66dp wide, 12sp white on
   #ff8a00 → #ff004d with 20dp ends (shape_btn_store_follow_normal); the bottom bar 50dp: the app's 28dp icons over
   10sp words, #ff6047 for the open one, #333 for the rest */
.km-app .store-div .van-search__content{height:35px!important;border-radius:6px!important;background:rgba(232,232,232,.6)!important}
.km-app .store-div .van-field__control{font-size:16px!important;color:#333}
.km-app .store-div .share-button-div .van-icon{width:30px;height:30px;font-size:0!important;background:url(/images/app/store-share.png) center/30px 30px no-repeat}
.km-app .store-info-div .left img{width:54px!important;height:54px!important}
.km-app .store-info-div .name{font-size:16px!important;color:#333!important}
.km-app .store-info-div .followers{font-size:12px!important;color:#999!important}
.km-app .store-info-div .score-mark{padding:0 3px!important;border:0!important;border-radius:1px!important;background:linear-gradient(90deg,#ffe5cd,#ffcb9a)!important;font-size:11px!important;color:#924a00!important}
.km-app .store-info-div .right{width:66px;padding:5px 0!important;border-radius:20px!important;background:linear-gradient(90deg,#ff8a00,#ff004d)!important;font-size:12px!important;text-align:center}
.km-app .store-div .switch-btns{height:50px!important}
.km-app .store-div .switch-btn{color:#333!important}
.km-app .store-div .switch-btn[select="1"]{color:#ff6047!important}
.km-app .store-div .switch-btn .btn-name{font-size:10px!important;color:inherit!important}
.km-app .store-div .switch-btn .van-icon{width:28px;height:28px;font-size:0!important;background:center/28px 28px no-repeat}
.km-app .store-div .switch-btn .van-icon-shop-o{background-image:url(/images/app/store-tab-home-normal.png)}
.km-app .store-div .switch-btn[select="1"] .van-icon-shop-o{background-image:url(/images/app/store-tab-home-selected.png)}
.km-app .store-div .switch-btn .van-icon-bag-o{background-image:url(/images/app/store-tab-products-normal.png)}
.km-app .store-div .switch-btn[select="1"] .van-icon-bag-o{background-image:url(/images/app/store-tab-products-selected.png)}
.km-app .store-div .switch-btn .van-icon-apps-o{background-image:url(/images/app/store-tab-category-normal.png)}
.km-app .store-div .switch-btn[select="1"] .van-icon-apps-o{background-image:url(/images/app/store-tab-category-selected.png)}
.km-app .store-div .switch-btn .van-icon-chat-o{background-image:url(/images/app/store-tab-contact.png)}
.km-app .home-div .icon-list:has(.km-app-shortcuts){height:auto!important}
.km-app .home-div .km-app-shortcuts .icon-item .icon,.km-app .home-div .km-app-shortcuts .icon-item .icon img{width:34px!important;height:34px!important;min-width:0!important}
/* 4 animations, from the app's res/anim: a bottom sheet rises from below while fading in, 200ms
   (anim_base_dialog_bottom_in; the payment sheet dialog_pay_in, 300ms); the shade behind it fades in (fade_in,
   300ms); a dialog rises 100ms (anim_dialog_show); a toast fades in (act_fade_in_center, 300ms); a tick pops in
   (btn_checkbox_to_checked_*); a pressed button dims (the platform's touch feedback); the app's own sort list drops
   in; pull-to-refresh (SmartRefreshLayout + ClassicsHeader) and the "into the cart" heart are drawn by
   kilimall-pwa.js. Page-to-page fades (activity_alpha_in / _out, 400ms) are switched on by the page's head snippet
   (scripts/app-links.js). Only the opening half of a sheet animates: the pages close them at once. */
@keyframes km-sheet-in{from{transform:translateY(100%);opacity:0}to{transform:none;opacity:1}}
@keyframes km-fade-in{from{opacity:0}to{opacity:1}}
@keyframes km-rise-in{from{transform:translate(-50%,0) translateY(100%);opacity:0}to{transform:translate(-50%,-50%);opacity:1}}
@keyframes km-tick-in{from{transform:scale(.4)}to{transform:scale(1)}}
@keyframes km-drop-in{from{transform:translateY(-12px);opacity:0}to{transform:none;opacity:1}}
@keyframes km-spin{to{transform:rotate(360deg)}}
.km-app .van-popup--bottom{animation:km-sheet-in .2s ease-out}
.km-app .van-overlay{animation:km-fade-in .3s ease-in}
.km-app .van-popup--center{animation:km-fade-in .1s ease-in}
.km-app .van-toast,.km-app .km-pwa-toast{animation:km-fade-in .3s}
.km-app .van-checkbox__icon--checked .van-icon,.km-app .van-radio__icon--checked .van-icon{animation:km-tick-in .15s ease-out}
.km-app .km-app-sort-panel{animation:km-drop-in .2s ease-out}
.km-app .km-app-sort-shade{animation:km-fade-in .2s}
.km-app .van-button:active,.km-app .opt-btn:active,.km-app .checkout-btn:active,.km-app .bottom-btn-div button:active,.km-app .van-cell--clickable:active,.km-app .sys-msg-item:active{opacity:.75}
.km-app body{overscroll-behavior-y:contain}
.km-app .km-app-refresh{position:fixed;left:0;right:0;top:0;z-index:2100;height:0;overflow:hidden;display:flex;align-items:flex-end;justify-content:center;padding-bottom:0;background:#f5f5f5;font-size:14px;color:#666;transition:height .2s}
.km-app .km-app-refresh.km-on{transition:none;padding-bottom:12px}
.km-app .km-app-refresh .van-icon{margin-right:8px;font-size:16px;transition:transform .2s}
.km-app .km-app-refresh.km-ready .van-icon{transform:rotate(180deg)}
.km-app .km-app-refresh.km-busy .van-icon{animation:km-spin .8s linear infinite}
.km-app .km-app-fly{position:fixed;z-index:3000;width:15px;height:15px;pointer-events:none}
