/**
 * 发货平台多模板主题色桥接层
 *
 * 使用约定：
 * 1. 页面 <html> 必须包含 data-fh-template="t15|t16|t18|t5|t8"。
 * 2. 后台启用自定义主题时，在页面 head 内注入：
 *      html { --fh-theme: #376cf6; }
 * 3. 可选注入 --fh-theme-dark、--fh-theme-deep、--fh-theme-soft、
 *    --fh-theme-faint、--fh-theme-border、--fh-theme-secondary、
 *    --fh-theme-contrast，以精确控制派生色。
 * 4. 后台未注入 --fh-theme 时，各模板使用其原有主色回退。
 *
 * 所有选择器均以 data-fh-template 为边界，避免模板之间互相污染。
 */

/* --------------------------------------------------------------------------
 * t15：桌面商城
 * -------------------------------------------------------------------------- */

html[data-fh-template="t15"] {
    --fh-bridge-primary: var(--fh-theme, #5566df);
    --fh-bridge-dark: var(
        --fh-theme-dark,
        color-mix(in srgb, var(--fh-bridge-primary) 86%, #000)
    );
    --fh-bridge-deep: var(
        --fh-theme-deep,
        color-mix(in srgb, var(--fh-bridge-primary) 72%, #000)
    );
    --fh-bridge-soft: var(
        --fh-theme-soft,
        color-mix(in srgb, var(--fh-bridge-primary) 12%, #fff)
    );
    --fh-bridge-faint: var(
        --fh-theme-faint,
        color-mix(in srgb, var(--fh-bridge-primary) 5%, #fff)
    );
    --fh-bridge-border: var(
        --fh-theme-border,
        color-mix(in srgb, var(--fh-bridge-primary) 34%, #fff)
    );
    --fh-bridge-secondary: var(
        --fh-theme-secondary,
        color-mix(in srgb, var(--fh-bridge-primary) 80%, #fff)
    );
    --fh-bridge-on-primary: var(--fh-theme-contrast, #fff);
    --accent-color: var(--fh-bridge-primary);
}

html[data-fh-template="t15"] .home-cat-nav-wrap .cat-nav .btn:hover,
html[data-fh-template="t15"] .home-cat-nav-wrap .cat-nav .btn.active {
    color: var(--fh-bridge-on-primary);
    border-color: var(--fh-bridge-primary);
    background: linear-gradient(
        135deg,
        var(--fh-bridge-primary),
        var(--fh-bridge-dark)
    );
}

html[data-fh-template="t15"] .home-cat-pager button:hover:not(:disabled),
html[data-fh-template="t15"] .home-product-pager button:hover:not(:disabled),
html[data-fh-template="t15"] .home-product-pager a:hover,
html[data-fh-template="t15"] .store-page-btn:hover,
html[data-fh-template="t15"] .store-page-btn.active {
    color: var(--fh-bridge-on-primary);
    border-color: var(--fh-bridge-primary);
    background: linear-gradient(
        135deg,
        var(--fh-bridge-primary),
        var(--fh-bridge-dark)
    );
}

html[data-fh-template="t15"] .main-menu .nav-list > li > a:hover,
html[data-fh-template="t15"] .main-menu .nav-list > li.current-menu-item > a,
html[data-fh-template="t15"] .navbar-button,
html[data-fh-template="t15"] .login-btn,
html[data-fh-template="t15"] .btn--primary,
html[data-fh-template="t15"] .button-primary,
html[data-fh-template="t15"] input[type="submit"],
html[data-fh-template="t15"] button[type="submit"] {
    color: var(--fh-bridge-on-primary);
    border-color: var(--fh-bridge-primary);
    background-color: var(--fh-bridge-primary);
}

html[data-fh-template="t15"] .navbar-button:hover,
html[data-fh-template="t15"] .login-btn:hover,
html[data-fh-template="t15"] .btn--primary:hover,
html[data-fh-template="t15"] .button-primary:hover,
html[data-fh-template="t15"] input[type="submit"]:hover,
html[data-fh-template="t15"] button[type="submit"]:hover {
    border-color: var(--fh-bridge-dark);
    background-color: var(--fh-bridge-dark);
}

html[data-fh-template="t15"] .pagination .current,
html[data-fh-template="t15"] #pager ul.pages li.pgCurrent,
html[data-fh-template="t15"] #pager ul.pages li:hover,
html[data-fh-template="t15"] .filter--content .on,
html[data-fh-template="t15"] .filter--content .active,
html[data-fh-template="t15"] .term-bar {
    color: var(--fh-bridge-on-primary);
    border-color: var(--fh-bridge-primary);
    background-color: var(--fh-bridge-primary);
}

html[data-fh-template="t15"] .detail-buy-btn {
    color: var(--fh-bridge-on-primary);
    border-color: var(--fh-bridge-primary);
    background: linear-gradient(
        135deg,
        var(--fh-bridge-primary),
        var(--fh-bridge-dark)
    );
    box-shadow: 0 9px 22px
        color-mix(in srgb, var(--fh-bridge-primary) 24%, transparent);
}

html[data-fh-template="t15"] .detail-buy-btn:hover {
    background: linear-gradient(
        135deg,
        var(--fh-bridge-dark),
        var(--fh-bridge-deep)
    );
}

html[data-fh-template="t15"] .detail-category-list .count,
html[data-fh-template="t15"] i.dot[style] {
    color: var(--fh-bridge-on-primary) !important;
    background-color: var(--fh-bridge-primary) !important;
}

html[data-fh-template="t15"] a:not(.detail-pay-price):hover {
    color: var(--fh-bridge-primary);
}

/* --------------------------------------------------------------------------
 * t16：响应式商城
 * -------------------------------------------------------------------------- */

html[data-fh-template="t16"] {
    --fh-bridge-primary: var(--fh-theme, #ff3b30);
    --fh-bridge-dark: var(
        --fh-theme-dark,
        color-mix(in srgb, var(--fh-bridge-primary) 86%, #000)
    );
    --fh-bridge-deep: var(
        --fh-theme-deep,
        color-mix(in srgb, var(--fh-bridge-primary) 72%, #000)
    );
    --fh-bridge-soft: var(
        --fh-theme-soft,
        color-mix(in srgb, var(--fh-bridge-primary) 11%, #fff)
    );
    --fh-bridge-faint: var(
        --fh-theme-faint,
        color-mix(in srgb, var(--fh-bridge-primary) 5%, #fff)
    );
    --fh-bridge-border: var(
        --fh-theme-border,
        color-mix(in srgb, var(--fh-bridge-primary) 32%, #fff)
    );
    --fh-bridge-secondary: var(
        --fh-theme-secondary,
        color-mix(in srgb, var(--fh-bridge-primary) 78%, #fff)
    );
    --fh-bridge-on-primary: var(--fh-theme-contrast, #fff);
    --mall-primary: var(--fh-bridge-primary);
    --mall-primary-dark: var(--fh-bridge-dark);
}

html[data-fh-template="t16"] .mall-search-box button,
html[data-fh-template="t16"] .mall-btn.primary,
html[data-fh-template="t16"] .product-purchase-actions .butnow,
html[data-fh-template="t16"] .product-purchase-actions .addcart,
html[data-fh-template="t16"] .pj_btn,
html[data-fh-template="t16"] .vip_button,
html[data-fh-template="t16"] .vip_long,
html[data-fh-template="t16"] .btn_info,
html[data-fh-template="t16"] .shop-enter-button {
    color: var(--fh-bridge-on-primary);
    border-color: var(--fh-bridge-primary);
    background-color: var(--fh-bridge-primary);
}

html[data-fh-template="t16"] .mall-search-box button:hover,
html[data-fh-template="t16"] .mall-btn.primary:hover,
html[data-fh-template="t16"] .product-purchase-actions .butnow:hover,
html[data-fh-template="t16"] .product-purchase-actions .addcart:hover,
html[data-fh-template="t16"] .pj_btn:hover,
html[data-fh-template="t16"] .vip_button:hover,
html[data-fh-template="t16"] .vip_long:hover,
html[data-fh-template="t16"] .btn_info:hover,
html[data-fh-template="t16"] .shop-enter-button:hover {
    border-color: var(--fh-bridge-dark);
    background-color: var(--fh-bridge-dark);
}

html[data-fh-template="t16"] .sub_sort_active,
html[data-fh-template="t16"] .tab .active,
html[data-fh-template="t16"] #pager ul.pages li.pgCurrent {
    color: var(--fh-bridge-on-primary) !important;
    border-color: var(--fh-bridge-primary) !important;
    background-color: var(--fh-bridge-primary) !important;
}

html[data-fh-template="t16"] .sub_sort_active:hover,
html[data-fh-template="t16"] #pager ul.pages li:hover {
    color: var(--fh-bridge-on-primary) !important;
    border-color: var(--fh-bridge-dark) !important;
    background-color: var(--fh-bridge-dark) !important;
}

html[data-fh-template="t16"] .search-hero,
html[data-fh-template="t16"] .text-hero,
html[data-fh-template="t16"] .contact-hero,
html[data-fh-template="t16"] .mall-side-ad-orange,
html[data-fh-template="t16"] .mall-channel-main {
    background: linear-gradient(
        135deg,
        var(--fh-bridge-primary),
        var(--fh-bridge-dark)
    );
}

html[data-fh-template="t16"] .mall-product-carousel,
html[data-fh-template="t16"] .mall-random-slide {
    border-color: var(--fh-bridge-border);
    background: linear-gradient(
        145deg,
        var(--fh-bridge-faint),
        var(--fh-bridge-soft)
    );
}

html[data-fh-template="t16"] .mall-slide-copy > span,
html[data-fh-template="t16"] .mall-product-tags span,
html[data-fh-template="t16"] .product-service-label,
html[data-fh-template="t16"] .role_title,
html[data-fh-template="t16"] .icon_bg {
    color: var(--fh-bridge-on-primary);
    border-color: var(--fh-bridge-primary);
    background-color: var(--fh-bridge-primary);
}

html[data-fh-template="t16"] .product-service-text::before,
html[data-fh-template="t16"] .contact-icon,
html[data-fh-template="t16"] .contact-card:hover strong,
html[data-fh-template="t16"] .contact-note a,
html[data-fh-template="t16"] .vip_info,
html[data-fh-template="t16"] .vip_over {
    color: var(--fh-bridge-primary);
}

html[data-fh-template="t16"] .mall-category-card:hover,
html[data-fh-template="t16"] .mall-product-card:hover {
    border-color: var(--fh-bridge-border);
    box-shadow: 0 12px 30px
        color-mix(in srgb, var(--fh-bridge-primary) 13%, transparent);
}

/* --------------------------------------------------------------------------
 * t18：游戏商城
 * -------------------------------------------------------------------------- */

html[data-fh-template="t18"] {
    --fh-bridge-primary: var(--fh-theme, #376cf6);
    --fh-bridge-dark: var(
        --fh-theme-dark,
        color-mix(in srgb, var(--fh-bridge-primary) 82%, #000)
    );
    --fh-bridge-deep: var(
        --fh-theme-deep,
        color-mix(in srgb, var(--fh-bridge-primary) 68%, #000)
    );
    --fh-bridge-soft: var(
        --fh-theme-soft,
        color-mix(in srgb, var(--fh-bridge-primary) 11%, #fff)
    );
    --fh-bridge-faint: var(
        --fh-theme-faint,
        color-mix(in srgb, var(--fh-bridge-primary) 5%, #fff)
    );
    --fh-bridge-border: var(
        --fh-theme-border,
        color-mix(in srgb, var(--fh-bridge-primary) 31%, #fff)
    );
    --fh-bridge-secondary: var(
        --fh-theme-secondary,
        color-mix(in srgb, var(--fh-bridge-primary) 74%, #fff)
    );
    --fh-bridge-on-primary: var(--fh-theme-contrast, #fff);
    --g18-primary: var(--fh-bridge-primary);
    --g18-primary-dark: var(--fh-bridge-dark);
    --g18-secondary: var(--fh-bridge-secondary);
}

html[data-fh-template="t18"] body a:hover,
html[data-fh-template="t18"] .site-header .nav-item-active .link,
html[data-fh-template="t18"] .site-header .header-nav .nav-list .nav-item a:hover,
html[data-fh-template="t18"] .site-header .header-search .hot-words a:hover,
html[data-fh-template="t18"] .filter-list a:hover,
html[data-fh-template="t18"] .filter-list dd.active,
html[data-fh-template="t18"] .order-list-box .order-list li.active a {
    color: var(--fh-bridge-primary);
}

html[data-fh-template="t18"] .site-header .header-nav .nav-list .nav-category .site-category-list .children-list li .link:hover,
html[data-fh-template="t18"] .xm-plain-box .box-hd .more .tab-list li:hover,
html[data-fh-template="t18"] .xm-plain-box .box-hd .more .tab-list li.tab-active,
html[data-fh-template="t18"] .goods-list-box .goods-item .thumb-list .active a,
html[data-fh-template="t18"] .goods-list-box .goods-item .thumb-list .active a:hover {
    color: var(--fh-bridge-primary);
    border-color: var(--fh-bridge-primary);
}

html[data-fh-template="t18"] .site-header .search-form-focus .search-text,
html[data-fh-template="t18"] .site-header .search-form-focus .search-btn,
html[data-fh-template="t18"] .site-header .header-search .search-btn,
html[data-fh-template="t18"] .add_ok,
html[data-fh-template="t18"] .order-list-box .type-list .checkbox-checked {
    border-color: var(--fh-bridge-primary);
}

html[data-fh-template="t18"] .site-header .header-search .search-btn:hover,
html[data-fh-template="t18"] .video-item:hover .play,
html[data-fh-template="t18"] .xm-pagers li.pager-active,
html[data-fh-template="t18"] .xm-pagers .pager-active .dot,
html[data-fh-template="t18"] .add_ok .go a.btn,
html[data-fh-template="t18"] .bnt_blue_1,
html[data-fh-template="t18"] .bnt_blue,
html[data-fh-template="t18"] .bnt_blue_2,
html[data-fh-template="t18"] .sort .curr .search_ASC,
html[data-fh-template="t18"] .sort .curr .search_DESC,
html[data-fh-template="t18"] #pager ul.pages li.pgCurrent {
    color: var(--fh-bridge-on-primary);
    border-color: var(--fh-bridge-primary);
    background-color: var(--fh-bridge-primary);
}

html[data-fh-template="t18"] .add_ok .go a.back {
    color: var(--fh-bridge-primary);
    border-color: var(--fh-bridge-primary);
    background-color: var(--fh-bridge-faint);
}

html[data-fh-template="t18"] .g18-btn--primary,
html[data-fh-template="t18"] .g18-search__btn {
    color: var(--fh-bridge-on-primary);
    border-color: var(--fh-bridge-primary);
    background: linear-gradient(
        135deg,
        var(--fh-bridge-primary),
        var(--fh-bridge-dark)
    );
}

html[data-fh-template="t18"] .g18-btn--primary:hover,
html[data-fh-template="t18"] .g18-search__btn:hover {
    border-color: var(--fh-bridge-dark);
    background: linear-gradient(
        135deg,
        var(--fh-bridge-dark),
        var(--fh-bridge-deep)
    );
}

/* --------------------------------------------------------------------------
 * t5：轻量商城
 * -------------------------------------------------------------------------- */

html[data-fh-template="t5"] {
    --fh-bridge-primary: var(--fh-theme, #ff4d2d);
    --fh-bridge-dark: var(
        --fh-theme-dark,
        color-mix(in srgb, var(--fh-bridge-primary) 84%, #000)
    );
    --fh-bridge-deep: var(
        --fh-theme-deep,
        color-mix(in srgb, var(--fh-bridge-primary) 69%, #000)
    );
    --fh-bridge-soft: var(
        --fh-theme-soft,
        color-mix(in srgb, var(--fh-bridge-primary) 11%, #fff)
    );
    --fh-bridge-faint: var(
        --fh-theme-faint,
        color-mix(in srgb, var(--fh-bridge-primary) 5%, #fff)
    );
    --fh-bridge-border: var(
        --fh-theme-border,
        color-mix(in srgb, var(--fh-bridge-primary) 30%, #fff)
    );
    --fh-bridge-secondary: var(
        --fh-theme-secondary,
        color-mix(in srgb, var(--fh-bridge-primary) 72%, #fff)
    );
    --fh-bridge-on-primary: var(--fh-theme-contrast, #fff);
    --t5m-primary: var(--fh-bridge-primary);
    --t5m-primary-dark: var(--fh-bridge-dark);
    --t5m-secondary: var(--fh-bridge-secondary);
    --t5m-accent: var(--fh-bridge-primary);
}

html[data-fh-template="t5"] .t5m-hero-feature {
    background: linear-gradient(
        135deg,
        var(--fh-bridge-primary),
        var(--fh-bridge-secondary)
    );
}

html[data-fh-template="t5"] .t5m-hero-cats__all,
html[data-fh-template="t5"] .t5m-user-card__benefit,
html[data-fh-template="t5"] .t5m-detail-info__badges span,
html[data-fh-template="t5"] .t5m-search-item > a:last-child {
    color: var(--fh-bridge-primary);
    border-color: var(--fh-bridge-border);
    background-color: var(--fh-bridge-soft);
}

html[data-fh-template="t5"] .t5m-feature-card__price span,
html[data-fh-template="t5"] .t5m-side-card a:hover {
    color: var(--fh-bridge-primary);
}

html[data-fh-template="t5"] .t5m-search-item:hover,
html[data-fh-template="t5"] .t5m-product-card:hover {
    border-color: var(--fh-bridge-border);
    box-shadow: 0 12px 30px
        color-mix(in srgb, var(--fh-bridge-primary) 13%, transparent);
}

html[data-fh-template="t5"] .btn-primary,
html[data-fh-template="t5"] .button-primary,
html[data-fh-template="t5"] input[type="submit"],
html[data-fh-template="t5"] button[type="submit"],
html[data-fh-template="t5"] #pager ul.pages li.pgCurrent {
    color: var(--fh-bridge-on-primary);
    border-color: var(--fh-bridge-primary);
    background-color: var(--fh-bridge-primary);
}

html[data-fh-template="t5"] .btn-primary:hover,
html[data-fh-template="t5"] .button-primary:hover,
html[data-fh-template="t5"] input[type="submit"]:hover,
html[data-fh-template="t5"] button[type="submit"]:hover,
html[data-fh-template="t5"] #pager ul.pages li:hover {
    color: var(--fh-bridge-on-primary);
    border-color: var(--fh-bridge-dark);
    background-color: var(--fh-bridge-dark);
}

/* --------------------------------------------------------------------------
 * t8：移动商城
 * -------------------------------------------------------------------------- */

html[data-fh-template="t8"] {
    --fh-bridge-primary: var(--fh-theme, #7c4dff);
    --fh-bridge-dark: var(
        --fh-theme-dark,
        color-mix(in srgb, var(--fh-bridge-primary) 78%, #000)
    );
    --fh-bridge-deep: var(
        --fh-theme-deep,
        color-mix(in srgb, var(--fh-bridge-primary) 64%, #000)
    );
    --fh-bridge-soft: var(
        --fh-theme-soft,
        color-mix(in srgb, var(--fh-bridge-primary) 11%, #fff)
    );
    --fh-bridge-faint: var(
        --fh-theme-faint,
        color-mix(in srgb, var(--fh-bridge-primary) 5%, #fff)
    );
    --fh-bridge-border: var(
        --fh-theme-border,
        color-mix(in srgb, var(--fh-bridge-primary) 31%, #fff)
    );
    --fh-bridge-secondary: var(
        --fh-theme-secondary,
        color-mix(in srgb, var(--fh-bridge-primary) 74%, #fff)
    );
    --fh-bridge-on-primary: var(--fh-theme-contrast, #fff);
}

/*
 * t8 在页面容器上重新声明了变量，必须在相同容器层覆盖，
 * 仅写到 html 上会被其局部变量遮蔽。
 */
html[data-fh-template="t8"] .t8-home-page,
html[data-fh-template="t8"] .t8-detail-page {
    --t8-purple: var(--fh-bridge-primary);
    --t8-purple-dark: var(--fh-bridge-dark);
    --t8-purple-soft: var(--fh-bridge-soft);
}

html[data-fh-template="t8"] .t8-home-page .zyw-header,
html[data-fh-template="t8"] .t8-detail-page .zyw-header,
html[data-fh-template="t8"] .t8-detail-page .item-precent h4::before,
html[data-fh-template="t8"] .t8-detail-page .zyw-footer .footer-warning,
html[data-fh-template="t8"] .t8-detail-page .item-layer-button,
html[data-fh-template="t8"] .t8-detail-page .t8-login-dialog .weui-dialog__hd::before,
html[data-fh-template="t8"] .t8-detail-page .t8-login-dialog .weui-dialog__btn.primary {
    color: var(--fh-bridge-on-primary);
    border-color: var(--fh-bridge-primary);
    background: linear-gradient(
        135deg,
        var(--fh-bridge-secondary),
        var(--fh-bridge-primary),
        var(--fh-bridge-dark)
    );
}

html[data-fh-template="t8"] .weui-tabbar__item.weui-bar__item--on .weui-tabbar__label,
html[data-fh-template="t8"] .weui-navbar__item.weui-bar__item--on,
html[data-fh-template="t8"] .theme-color,
html[data-fh-template="t8"] .active2,
html[data-fh-template="t8"] .weui-search-bar__cancel-btn {
    color: var(--fh-bridge-primary) !important;
}

html[data-fh-template="t8"] .theme-bgcolor,
html[data-fh-template="t8"] .swiper-pagination-bullet-active,
html[data-fh-template="t8"] .index-news .news-cont strong em,
html[data-fh-template="t8"] .class-cont .class-hd > li.active > a,
html[data-fh-template="t8"] .find-cart .cart-tab.active,
html[data-fh-template="t8"] .group1-hd .hd-take,
html[data-fh-template="t8"] #pager ul.pages li.pgCurrent {
    color: var(--fh-bridge-on-primary) !important;
    border-color: var(--fh-bridge-primary) !important;
    background-color: var(--fh-bridge-primary) !important;
}

html[data-fh-template="t8"] .theme-bdcolor,
html[data-fh-template="t8"] .weui-count .weui-count__btn,
html[data-fh-template="t8"] .weui-count .weui-count__increase,
html[data-fh-template="t8"] .item-spec-layer .spec-info .spec-info-bd ul li.active {
    color: var(--fh-bridge-primary) !important;
    border-color: var(--fh-bridge-primary) !important;
}

html[data-fh-template="t8"] .weui-count .weui-count__btn::after,
html[data-fh-template="t8"] .weui-count .weui-count__btn::before,
html[data-fh-template="t8"] .weui-count .weui-count__increase::after,
html[data-fh-template="t8"] .weui-count .weui-count__increase::before {
    background-color: var(--fh-bridge-primary) !important;
}

html[data-fh-template="t8"] .class-cont .class-hd > li.active > a:focus,
html[data-fh-template="t8"] .class-cont .class-hd > li.active > a:hover {
    color: var(--fh-bridge-on-primary) !important;
    background-color: var(--fh-bridge-dark) !important;
}

/* --------------------------------------------------------------------------
 * crmeb_style：修正旧样式中残留的固定红色渐变
 * -------------------------------------------------------------------------- */

html[data-fh-template="crmeb_style"] .btn--primary,
html[data-fh-template="crmeb_style"] .button-primary,
html[data-fh-template="crmeb_style"] input[type="submit"],
html[data-fh-template="crmeb_style"] .detail-buy-btn,
html[data-fh-template="crmeb_style"] .crmeb-buy-now,
html[data-fh-template="crmeb_style"] .cb-user-actions a:first-child,
html[data-fh-template="crmeb_style"] .cb-search button,
html[data-fh-template="crmeb_style"] .cb-all-cats {
    color: var(--fh-theme-contrast, #fff) !important;
    border-color: var(--fh-theme) !important;
    background: linear-gradient(135deg, var(--fh-theme), var(--fh-theme-dark)) !important;
}

html[data-fh-template="crmeb_style"] .term-bar,
html[data-fh-template="crmeb_style"] .crmeb-mall-hero,
html[data-fh-template="crmeb_style"] .crmeb-search-hero {
    background: linear-gradient(135deg, var(--fh-theme-soft), var(--fh-theme-faint)) !important;
    border-color: var(--fh-theme-border) !important;
}

html[data-fh-template="crmeb_style"] .crmeb-price-panel {
    background: linear-gradient(90deg, var(--fh-theme-soft), var(--fh-theme-faint)) !important;
}

html[data-fh-template="crmeb_style"] .main-menu .nav-list > li > a:hover,
html[data-fh-template="crmeb_style"] .main-menu .nav-list > li.current-menu-item > a,
html[data-fh-template="crmeb_style"] .cb-main-nav a:hover,
html[data-fh-template="crmeb_style"] .cb-vip-link {
    color: var(--fh-theme) !important;
}

/* t15 的独立课程页沿用 Bootstrap 类名。 */
html[data-fh-template="t15"] .btn-primary,
html[data-fh-template="t15"] .list-group-item.active,
html[data-fh-template="t15"] .list-group-item.active:hover,
html[data-fh-template="t15"] .list-group-item.active:focus {
    color: var(--fh-theme-contrast, #fff) !important;
    border-color: var(--fh-theme) !important;
    background-color: var(--fh-theme) !important;
}

/* t8 数量加号必须保持白色，按钮底色跟随主题。 */
html[data-fh-template="t8"] .weui-navbar__item.weui-bar__item--on,
html[data-fh-template="t8"] .find-cart .cart-tab.active {
    border-color: var(--fh-theme) !important;
}

html[data-fh-template="t8"] .weui-count .weui-count__increase {
    color: var(--fh-theme-contrast, #fff) !important;
    border-color: var(--fh-theme) !important;
    background-color: var(--fh-theme) !important;
}

html[data-fh-template="t8"] .weui-count .weui-count__increase::after,
html[data-fh-template="t8"] .weui-count .weui-count__increase::before {
    background-color: var(--fh-theme-contrast, #fff) !important;
}
/* --------------------------------------------------------------------------
 * 统一键盘焦点反馈：仅覆盖五套已接入模板
 * -------------------------------------------------------------------------- */

html[data-fh-template="t15"] :is(a, button, input, select, textarea):focus-visible,
html[data-fh-template="t16"] :is(a, button, input, select, textarea):focus-visible,
html[data-fh-template="t18"] :is(a, button, input, select, textarea):focus-visible,
html[data-fh-template="t5"] :is(a, button, input, select, textarea):focus-visible,
html[data-fh-template="t8"] :is(a, button, input, select, textarea):focus-visible {
    outline: 3px solid var(--fh-bridge-border);
    outline-offset: 2px;
}
