/* ========== 精选家族公用卡片（视觉美感 + 三种变体） ==========
   .ft-card              公用骨架
   .ft-card--plain       无图无按钮（官方/插件/APP 等）
   .ft-card--media       有图（小程序二维码等）
   .ft-card--actions     有底部操作按钮（工具库）
   兼容旧类名：tool-card / plugin-card / miniprogram-card / app-card / site-card / official-featured-card / admin-featured-card
   ============================================================ */

.featured-tools-page .ft-card,
.featured-tools-page .tool-card,
.featured-tools-page .plugin-card,
.featured-tools-page .admin-featured-card,
.featured-tools-page .official-featured-card,
.featured-tools-page .miniprogram-card,
.featured-tools-page .app-card,
.featured-tools-page .site-card,
.featured-family-page .ft-card,
.featured-family-page .tool-card,
.featured-family-page .plugin-card,
.featured-family-page .admin-featured-card,
.featured-family-page .official-featured-card,
.featured-family-page .miniprogram-card,
.featured-family-page .app-card,
.featured-family-page .site-card {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    border-radius: 14px !important;
    border: 1px solid #e7eee9 !important;
    border-left-width: 1px !important;
    background: #ffffff !important;
    box-shadow: 0 2px 8px rgba(17, 24, 39, 0.04) !important;
    overflow: hidden;
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    min-height: 0 !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.featured-tools-page .ft-card::before,
.featured-tools-page .tool-card::before,
.featured-tools-page .plugin-card::before,
.featured-tools-page .admin-featured-card::before,
.featured-tools-page .official-featured-card::before,
.featured-tools-page .miniprogram-card::before,
.featured-tools-page .app-card::before,
.featured-tools-page .site-card::before,
.featured-family-page .ft-card::before,
.featured-family-page .tool-card::before,
.featured-family-page .plugin-card::before,
.featured-family-page .admin-featured-card::before,
.featured-family-page .official-featured-card::before,
.featured-family-page .miniprogram-card::before,
.featured-family-page .app-card::before,
.featured-family-page .site-card::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 3px !important;
    background: linear-gradient(90deg, #059669, #34d399) !important;
    opacity: 1 !important;
    z-index: 3 !important;
    animation: none !important;
    transform: none !important;
}

.featured-tools-page .ft-card:hover,
.featured-tools-page .tool-card:hover,
.featured-tools-page .plugin-card:hover,
.featured-tools-page .admin-featured-card:hover,
.featured-tools-page .official-featured-card:hover,
.featured-tools-page .miniprogram-card:hover,
.featured-tools-page .app-card:hover,
.featured-tools-page .site-card:hover,
.featured-family-page .ft-card:hover,
.featured-family-page .tool-card:hover,
.featured-family-page .plugin-card:hover,
.featured-family-page .admin-featured-card:hover,
.featured-family-page .official-featured-card:hover,
.featured-family-page .miniprogram-card:hover,
.featured-family-page .app-card:hover,
.featured-family-page .site-card:hover {
    transform: translateY(-3px) !important;
    border-color: #a7f3d0 !important;
    box-shadow: 0 12px 28px rgba(5, 150, 105, 0.12) !important;
    opacity: 1 !important;
}

/* 取消旧绿蒙层 */
.featured-tools-page .tool-card .card-body::before,
.featured-tools-page .tool-card .card-body::after,
.featured-tools-page .admin-featured-card .card-body::before,
.featured-tools-page .admin-featured-card .card-body::after,
.featured-tools-page .official-featured-card .card-body::before,
.featured-tools-page .official-featured-card .card-body::after,
.featured-tools-page .plugin-card .card-body::before,
.featured-tools-page .plugin-card .card-body::after,
.featured-tools-page .miniprogram-card .card-body::before,
.featured-tools-page .miniprogram-card .card-body::after,
.featured-tools-page .app-card .card-body::before,
.featured-tools-page .app-card .card-body::after,
.featured-tools-page .site-card .card-body::before,
.featured-tools-page .site-card .card-body::after,
.featured-family-page .tool-card .card-body::before,
.featured-family-page .tool-card .card-body::after,
.featured-family-page .admin-featured-card .card-body::before,
.featured-family-page .admin-featured-card .card-body::after,
.featured-family-page .official-featured-card .card-body::before,
.featured-family-page .official-featured-card .card-body::after,
.featured-family-page .plugin-card .card-body::before,
.featured-family-page .plugin-card .card-body::after,
.featured-family-page .miniprogram-card .card-body::before,
.featured-family-page .miniprogram-card .card-body::after,
.featured-family-page .app-card .card-body::before,
.featured-family-page .app-card .card-body::after,
.featured-family-page .site-card .card-body::before,
.featured-family-page .site-card .card-body::after {
    content: none !important;
    display: none !important;
}

/* 角标 */
.featured-tools-page .ft-card-badge,
.featured-tools-page .official-featured-badge,
.featured-tools-page .mp-featured-badge,
.featured-tools-page .featured-badge,
.featured-family-page .ft-card-badge,
.featured-family-page .official-featured-badge,
.featured-family-page .mp-featured-badge,
.featured-family-page .featured-badge,
.featured-family-page .plugin-card .badge.bg-warning,
.featured-family-page .app-card .badge.bg-warning,
.featured-family-page .admin-featured-card .badge.bg-warning,
.featured-tools-page .plugin-card .badge.bg-warning,
.featured-tools-page .app-card .badge.bg-warning {
    position: absolute !important;
    top: 0.75rem !important;
    right: 0.75rem !important;
    z-index: 12 !important;
    margin: 0 !important;
    padding: 0.28rem 0.65rem !important;
    font-size: 0.72rem !important;
    font-weight: 650 !important;
    letter-spacing: 0.02em;
    border-radius: 999px !important;
    background: rgba(236, 253, 245, 0.96) !important;
    color: #047857 !important;
    -webkit-text-fill-color: #047857 !important;
    border: 1px solid #a7f3d0 !important;
    box-shadow: 0 2px 8px rgba(5, 150, 105, 0.08) !important;
    backdrop-filter: blur(6px);
    transform: none !important;
    animation: none !important;
}
.featured-family-page .ft-card-badge i,
.featured-family-page .official-featured-badge i,
.featured-family-page .featured-badge i,
.featured-family-page .plugin-card .badge.bg-warning i,
.featured-family-page .app-card .badge.bg-warning i {
    color: #059669 !important;
}

/* 主体内容区 */
.featured-tools-page .ft-card .card-body,
.featured-tools-page .tool-card .card-body,
.featured-tools-page .plugin-card .card-body,
.featured-tools-page .admin-featured-card .card-body,
.featured-tools-page .official-featured-card .card-body,
.featured-tools-page .miniprogram-card .card-body,
.featured-tools-page .app-card .card-body,
.featured-tools-page .site-card .card-body,
.featured-family-page .ft-card .card-body,
.featured-family-page .tool-card .card-body,
.featured-family-page .plugin-card .card-body,
.featured-family-page .admin-featured-card .card-body,
.featured-family-page .official-featured-card .card-body,
.featured-family-page .miniprogram-card .card-body,
.featured-family-page .app-card .card-body,
.featured-family-page .site-card .card-body {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    justify-content: flex-start !important;
    gap: 0.55rem !important;
    padding: 1.1rem 1.15rem 1rem !important;
}

/* 有角标时给标题区留右空，避免压字 */
.featured-family-page .ft-card--plain .card-body,
.featured-family-page .ft-card--actions .card-body,
.featured-family-page .official-featured-card .card-body,
.featured-family-page .admin-featured-card .card-body,
.featured-family-page .plugin-card .card-body,
.featured-family-page .app-card .card-body,
.featured-family-page .site-card .card-body,
.featured-tools-page .official-featured-card .card-body,
.featured-tools-page .admin-featured-card .card-body,
.featured-tools-page .plugin-card .card-body,
.featured-tools-page .app-card .card-body {
    padding-right: 4.5rem !important;
}

/* —— 变体：有图 —— */
.featured-family-page .ft-card-media,
.featured-tools-page .ft-card-media,
.featured-family-page .mp-preview,
.featured-tools-page .mp-preview {
    position: relative;
    width: 100%;
    height: 148px;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        radial-gradient(circle at 30% 20%, rgba(167, 243, 208, 0.35), transparent 55%),
        linear-gradient(160deg, #f8faf9 0%, #eef7f2 100%);
    border-bottom: 1px solid #e8f0eb;
    overflow: hidden;
    flex-shrink: 0;
}
.featured-family-page .ft-card--media .card-body,
.featured-tools-page .ft-card--media .card-body,
.featured-family-page .miniprogram-card .card-body,
.featured-tools-page .miniprogram-card .card-body {
    padding-top: 0.95rem !important;
    padding-right: 1.15rem !important; /* 角标叠在媒体区，正文不必大幅右缩 */
}
.featured-family-page .ft-card-media-img,
.featured-tools-page .ft-card-media-img,
.featured-family-page .mp-preview-img,
.featured-tools-page .mp-preview-img {
    max-width: calc(100% - 2rem);
    max-height: calc(100% - 1.5rem);
    width: auto;
    height: auto;
    object-fit: contain;
    background: #fff;
    border-radius: 10px;
    padding: 0.35rem;
    box-shadow: 0 6px 18px rgba(17, 24, 39, 0.08);
}
.featured-family-page .ft-card-media.is-empty::before,
.featured-tools-page .ft-card-media.is-empty::before,
.featured-family-page .mp-preview.is-empty::before,
.featured-tools-page .mp-preview.is-empty::before {
    content: '';
    width: 44px;
    height: 44px;
    margin-bottom: 0.45rem;
    border-radius: 12px;
    border: 2px dashed #a7f3d0;
    background:
        linear-gradient(#a7f3d0, #a7f3d0) center/18px 2px no-repeat,
        linear-gradient(#a7f3d0, #a7f3d0) center/2px 18px no-repeat,
        rgba(255, 255, 255, 0.65);
}
.featured-family-page .ft-card-media.is-empty,
.featured-tools-page .ft-card-media.is-empty,
.featured-family-page .mp-preview.is-empty,
.featured-tools-page .mp-preview.is-empty {
    flex-direction: column;
}
.featured-family-page .ft-card-media.is-empty::after,
.featured-tools-page .ft-card-media.is-empty::after,
.featured-family-page .mp-preview.is-empty::after,
.featured-tools-page .mp-preview.is-empty::after {
    content: '暂无预览图';
    color: #6b7280;
    font-size: 0.85rem;
    font-weight: 600;
}

/* —— 变体：有按钮 —— */
.featured-family-page .ft-card-actions,
.featured-tools-page .ft-card-actions,
.featured-tools-page .ft-card--actions .card-footer,
.featured-family-page .ft-card--actions .card-footer,
.featured-tools-page .tool-card .card-footer,
.featured-family-page .tool-card .card-footer,
.featured-tools-page .admin-featured-card .card-footer {
    margin-top: auto;
    padding: 0.7rem 1rem 0.85rem !important;
    border-top: 1px solid #eef3f0 !important;
    background: linear-gradient(180deg, #fbfdfc 0%, #f5faf7 100%) !important;
    position: relative;
    z-index: 10;
}
.featured-tools-page .tool-action-buttons,
.featured-family-page .tool-action-buttons,
.featured-family-page .ft-card-actions-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.4rem;
}
.featured-tools-page .tool-action-buttons .btn-remix-featured,
.featured-family-page .tool-action-buttons .btn-remix-featured,
.featured-tools-page .tool-action-buttons .favorite-btn.favorited,
.featured-family-page .tool-action-buttons .favorite-btn.favorited {
    background: #059669 !important;
    border-color: #059669 !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}
.featured-tools-page .tool-action-buttons .btn-remix-featured,
.featured-family-page .tool-action-buttons .btn-remix-featured {
    grid-column: 1 / -1;
}
.featured-tools-page .tool-action-buttons .btn-remix-featured:hover,
.featured-family-page .tool-action-buttons .btn-remix-featured:hover,
.featured-tools-page .tool-action-buttons .favorite-btn.favorited:hover,
.featured-family-page .tool-action-buttons .favorite-btn.favorited:hover {
    background: #047857 !important;
    border-color: #047857 !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}
/* 绿底实心按钮：SVG/字体图标强制白色，避免绿底绿标看不清 */
.featured-tools-page .tool-action-buttons .btn-remix-featured img,
.featured-family-page .tool-action-buttons .btn-remix-featured img,
.featured-tools-page .tool-action-buttons .btn-remix-featured i,
.featured-family-page .tool-action-buttons .btn-remix-featured i,
.featured-tools-page .tool-action-buttons .favorite-btn.favorited img,
.featured-family-page .tool-action-buttons .favorite-btn.favorited img,
.featured-tools-page .tool-action-buttons .favorite-btn.favorited i,
.featured-family-page .tool-action-buttons .favorite-btn.favorited i {
    filter: brightness(0) invert(1);
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}
.featured-tools-page .tool-action-btn,
.featured-family-page .tool-action-btn,
.featured-family-page .ft-card-actions .btn {
    min-height: 34px;
    padding: 0.35rem 0.4rem;
    font-size: 0.75rem;
    font-weight: 600;
    border-radius: 8px;
}
.featured-family-page .site-card .btn-success.btn-sm,
.featured-family-page .ft-card-actions .btn-success {
    background: #059669 !important;
    border-color: #059669 !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    border-radius: 8px;
    font-weight: 600;
}

/* 标题 / 描述 / 芯片 / meta —— 三种变体共用层次 */
.featured-tools-page .ft-card .card-title,
.featured-tools-page .tool-card .card-title,
.featured-tools-page .plugin-card .card-title,
.featured-tools-page .admin-featured-card .card-title,
.featured-tools-page .official-featured-card .card-title,
.featured-tools-page .miniprogram-card .card-title,
.featured-tools-page .app-card .card-title,
.featured-tools-page .site-card .card-title,
.featured-family-page .ft-card .card-title,
.featured-family-page .tool-card .card-title,
.featured-family-page .plugin-card .card-title,
.featured-family-page .admin-featured-card .card-title,
.featured-family-page .official-featured-card .card-title,
.featured-family-page .miniprogram-card .card-title,
.featured-family-page .app-card .card-title,
.featured-family-page .site-card .card-title {
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    margin: 0 !important;
    color: #111827;
    display: -webkit-box !important;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden !important;
    word-break: break-word;
    max-width: 100% !important;
    padding-right: 0 !important;
}

.featured-tools-page .ft-card .card-title a,
.featured-tools-page .tool-card .card-title a,
.featured-tools-page .plugin-card .card-title a,
.featured-tools-page .admin-featured-card .card-title a,
.featured-tools-page .official-featured-card .card-title a,
.featured-tools-page .miniprogram-card .card-title a,
.featured-tools-page .app-card .card-title a,
.featured-tools-page .site-card .card-title a,
.featured-family-page .ft-card .card-title a,
.featured-family-page .tool-card .card-title a,
.featured-family-page .plugin-card .card-title a,
.featured-family-page .admin-featured-card .card-title a,
.featured-family-page .official-featured-card .card-title a,
.featured-family-page .miniprogram-card .card-title a,
.featured-family-page .app-card .card-title a,
.featured-family-page .site-card .card-title a,
.featured-family-page .tool-card a.stretched-link,
.featured-tools-page .tool-card a.stretched-link {
    color: #111827 !important;
    -webkit-text-fill-color: #111827 !important;
    background: none !important;
    background-image: none !important;
    text-decoration: none !important;
    transform: none !important;
}
.featured-tools-page .ft-card .card-title a:hover,
.featured-tools-page .tool-card .card-title a:hover,
.featured-tools-page .plugin-card .card-title a:hover,
.featured-tools-page .admin-featured-card .card-title a:hover,
.featured-tools-page .official-featured-card .card-title a:hover,
.featured-tools-page .miniprogram-card .card-title a:hover,
.featured-tools-page .app-card .card-title a:hover,
.featured-tools-page .site-card .card-title a:hover,
.featured-family-page .ft-card .card-title a:hover,
.featured-family-page .tool-card .card-title a:hover,
.featured-family-page .plugin-card .card-title a:hover,
.featured-family-page .admin-featured-card .card-title a:hover,
.featured-family-page .official-featured-card .card-title a:hover,
.featured-family-page .miniprogram-card .card-title a:hover,
.featured-family-page .app-card .card-title a:hover,
.featured-family-page .site-card .card-title a:hover {
    color: #059669 !important;
    -webkit-text-fill-color: #059669 !important;
    background: none !important;
}

.featured-tools-page .ft-card .card-text,
.featured-tools-page .tool-card .card-text,
.featured-tools-page .plugin-card .card-text,
.featured-tools-page .admin-featured-card .card-text,
.featured-tools-page .official-featured-card .card-text,
.featured-tools-page .miniprogram-card .card-text,
.featured-tools-page .app-card .card-text,
.featured-tools-page .site-card .card-text,
.featured-family-page .ft-card .card-text,
.featured-family-page .tool-card .card-text,
.featured-family-page .plugin-card .card-text,
.featured-family-page .admin-featured-card .card-text,
.featured-family-page .official-featured-card .card-text,
.featured-family-page .miniprogram-card .card-text,
.featured-family-page .app-card .card-text,
.featured-family-page .site-card .card-text {
    margin: 0 !important;
    min-height: 2.6em !important; /* 两行描述占位，网格更整齐，但不压扁内容 */
    font-size: 0.875rem !important;
    line-height: 1.5 !important;
    color: #6b7280 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden !important;
    flex-grow: 1;
}

.featured-family-page .ft-card-chip,
.featured-tools-page .ft-card-chip,
.featured-family-page .mp-platform-badge,
.featured-tools-page .mp-platform-badge {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    max-width: 100%;
    background: #ecfdf5 !important;
    color: #047857 !important;
    -webkit-text-fill-color: #047857 !important;
    border: 1px solid #bbf7d0 !important;
    border-radius: 999px;
    padding: 0.2rem 0.55rem;
    font-size: 0.72rem;
    font-weight: 650;
    box-shadow: none !important;
}

.featured-tools-page .plugin-store,
.featured-tools-page .app-platform,
.featured-family-page .plugin-store,
.featured-family-page .app-platform {
    font-size: 0.78rem !important;
    color: #6b7280 !important;
    margin: 0 !important;
}

.featured-family-page .ft-card-tags,
.featured-tools-page .ft-card-tags,
.featured-family-page .mp-tags,
.featured-tools-page .mp-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    min-height: 1.4rem;
    align-items: center;
}
.featured-family-page .mp-tag,
.featured-tools-page .mp-tag,
.featured-family-page .ft-card-tag {
    background: #f3f4f6 !important;
    color: #4b5563 !important;
    -webkit-text-fill-color: #4b5563 !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 999px;
    padding: 0.12rem 0.45rem;
    font-size: 0.68rem;
    font-weight: 500;
}

.featured-tools-page .tool-meta,
.featured-tools-page .plugin-meta,
.featured-tools-page .app-meta,
.featured-family-page .tool-meta,
.featured-family-page .plugin-meta,
.featured-family-page .app-meta,
.featured-family-page .ft-card-meta {
    margin-top: auto !important;
    padding-top: 0.65rem !important;
    border-top: 1px solid #eef2f0 !important;
    font-size: 0.75rem !important;
    color: #9ca3af !important;
}
.featured-tools-page .tool-meta span,
.featured-tools-page .plugin-meta span,
.featured-tools-page .app-meta span,
.featured-family-page .tool-meta span,
.featured-family-page .plugin-meta span,
.featured-family-page .app-meta span,
.featured-family-page .ft-card-meta span {
    font-size: 0.75rem !important;
    color: #9ca3af !important;
}
.featured-family-page .tool-meta .text-truncate,
.featured-tools-page .tool-meta .text-truncate {
    max-width: 62%;
}
.featured-family-page .tool-meta .flex-shrink-0,
.featured-tools-page .tool-meta .flex-shrink-0 {
    max-width: none;
    white-space: nowrap;
    overflow: visible;
    text-overflow: unset;
}

.featured-tools-page .tool-card-min-height,
.featured-family-page .tool-card-min-height {
    min-height: 0 !important;
}

.featured-tools-page .row.g-4,
.featured-family-page .row.g-4 {
    --bs-gutter-x: 1rem;
    --bs-gutter-y: 1rem;
}

@media (max-width: 576px) {
    .ft-hero-aside,
    .ft-hero-actions {
        width: 100%;
        justify-content: flex-start;
    }
    .ft-title {
        font-size: 1.25rem;
    }
    .featured-family-page .ft-card-media,
    .featured-tools-page .ft-card-media,
    .featured-family-page .mp-preview,
    .featured-tools-page .mp-preview {
        height: 132px;
    }
}

/* 无搜索结果：CTA 卡片 + 按钮（绿 / 白 / 黑） */
.ft-empty-block {
    text-align: center;
    padding: 2.5rem 0.75rem 1.5rem;
}
.ft-empty-block--panel {
    max-width: 720px;
    margin: 0.25rem auto 1rem;
    padding: 2rem 1.25rem 1.5rem;
    background: #fff;
    border: 1px solid #e7eee9;
    border-radius: 14px;
    box-shadow: 0 2px 8px rgba(17, 24, 39, 0.04);
}
.ft-filter-card--empty {
    padding-bottom: 0.85rem;
}
.ft-search-hint--empty {
    color: #6b7280 !important;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 0.45rem 0.75rem;
    margin-top: 0.65rem;
}
.ft-empty-block .ft-empty-icon {
    width: 3.25rem;
    height: 3.25rem;
    margin: 0 auto 0.85rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.45rem;
    color: #6b7280;
    background: #f3f4f6;
    line-height: 1;
}
.ft-empty-block .ft-empty-icon i,
.ft-empty-block .ft-empty-icon img {
    width: 1.35rem !important;
    height: 1.35rem !important;
    max-width: 1.35rem;
    max-height: 1.35rem;
    opacity: 0.85 !important;
    vertical-align: middle;
}
.ft-empty-block .ft-empty-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: #111827 !important;
    -webkit-text-fill-color: #111827 !important;
    margin: 0 0 0.4rem;
}
.ft-empty-block .ft-empty-desc {
    color: #6b7280;
    font-size: 0.95rem;
    margin: 0 0 1.35rem;
}
.ft-empty-recommend-title {
    font-size: 0.95rem;
    font-weight: 600;
    color: #374151;
    margin: 0 0 0.75rem;
}
a.ft-empty-recommend-card {
    text-decoration: none !important;
    align-items: flex-start;
    text-align: left;
}
a.ft-empty-recommend-card:hover {
    border-color: #059669;
}
.ft-empty-cta-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
    max-width: 640px;
    margin: 0 auto;
    text-align: center;
}
@media (max-width: 576px) {
    .ft-empty-cta-grid {
        grid-template-columns: 1fr;
    }
}
.ft-empty-cta-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    height: 100%;
    padding: 1.25rem 1rem 1.15rem;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}
.ft-empty-cta-card--accent {
    background: #f0fdf4;
    border-color: #a7f3d0;
}
.ft-empty-cta-icon {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #059669;
    color: #fff !important;
    font-size: 1.1rem;
    margin-bottom: 0.15rem;
}
.ft-empty-cta-icon--mute {
    background: #f3f4f6;
    color: #6b7280 !important;
}
.ft-empty-cta-heading,
.featured-family-page .ft-empty-cta-heading,
.featured-tools-page .ft-empty-cta-heading,
.ft-empty-block h5,
.ft-empty-block h6 {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: #111827 !important;
    -webkit-text-fill-color: #111827 !important;
}
.ft-empty-cta-text {
    margin: 0 0 0.65rem;
    font-size: 0.82rem;
    line-height: 1.45;
    color: #6b7280;
    flex: 1;
}
.ft-empty-cta-card .ft-btn {
    min-width: 8.75rem;
    padding: 0.48rem 1.15rem;
    border-radius: 999px;
    font-size: 0.875rem;
    box-shadow: none !important;
    text-shadow: none !important;
}
a.ft-btn-outline,
a.ft-btn-outline:link,
a.ft-btn-outline:visited,
a.ft-btn-outline:hover,
a.ft-btn-outline:focus,
a.ft-btn-outline:active,
button.ft-btn-outline {
    background: #fff !important;
    border-color: #059669 !important;
    color: #059669 !important;
    -webkit-text-fill-color: #059669 !important;
}
a.ft-btn-outline:hover,
a.ft-btn-outline:focus,
button.ft-btn-outline:hover,
button.ft-btn-outline:focus {
    background: #ecfdf5 !important;
    border-color: #047857 !important;
    color: #047857 !important;
    -webkit-text-fill-color: #047857 !important;
}
.ft-empty-reset {
    margin-top: 1.25rem;
}
.ft-empty-reset .ft-btn {
    min-width: 10rem;
    padding: 0.45rem 1.1rem;
    border-radius: 999px;
    box-shadow: none !important;
}

/* 覆盖无结果区旧 Bootstrap 大绿按钮阴影 */
.featured-family-page .ft-empty-block .btn.btn-success,
.featured-tools-page .ft-empty-block .btn.btn-success {
    box-shadow: none !important;
    text-shadow: none !important;
}

/* ========== /aitools 发现页 VIP 介绍展示位（对齐 /vip 四大价值） ========== */
.ft-vip-promo {
    margin: 0 0 1.25rem;
    padding: 1.2rem 1.25rem 1.15rem;
    border-radius: 14px;
    border: 1px solid #a7f3d0;
    background:
        radial-gradient(ellipse 70% 100% at 100% 0%, rgba(16, 185, 129, 0.12), transparent 55%),
        linear-gradient(135deg, #ecfdf5 0%, #ffffff 50%, #f0fdf4 100%);
    box-shadow: 0 8px 28px rgba(5, 150, 105, 0.06);
}
.ft-vip-promo-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 0.85rem 1.25rem;
    margin-bottom: 1rem;
}
.ft-vip-promo-eyebrow {
    margin: 0 0 0.3rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #059669;
}
.ft-vip-promo-title {
    margin: 0 0 0.4rem;
    font-size: clamp(1.15rem, 2.2vw, 1.4rem);
    font-weight: 800;
    line-height: 1.3;
    color: #111827;
}
.ft-vip-promo-desc {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.55;
    color: #4b5563;
    max-width: 42rem;
}
.ft-vip-promo-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1rem;
    flex-shrink: 0;
}
a.ft-vip-promo-cta,
a.ft-vip-promo-cta:link,
a.ft-vip-promo-cta:visited,
a.ft-vip-promo-cta:hover,
a.ft-vip-promo-cta:focus,
a.ft-vip-promo-cta:active {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.55rem 1.15rem;
    border-radius: 999px;
    background: #059669;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-size: 0.9rem;
    font-weight: 700;
    text-decoration: none !important;
    border: none;
    box-shadow: 0 4px 14px rgba(5, 150, 105, 0.28);
    transition: background 0.15s ease, transform 0.15s ease;
}
a.ft-vip-promo-cta:hover,
a.ft-vip-promo-cta:focus {
    background: #047857;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    transform: translateY(-1px);
}
a.ft-vip-promo-link,
a.ft-vip-promo-link:link,
a.ft-vip-promo-link:visited {
    font-size: 0.88rem;
    font-weight: 600;
    color: #059669 !important;
    text-decoration: none !important;
}
a.ft-vip-promo-link:hover,
a.ft-vip-promo-link:focus {
    color: #047857 !important;
    text-decoration: underline !important;
}
.ft-vip-promo-points {
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.7rem;
}
a.ft-vip-promo-point,
a.ft-vip-promo-point:link,
a.ft-vip-promo-point:visited {
    margin: 0;
    padding: 0.8rem 0.85rem;
    border-radius: 10px;
    background: #ffffff;
    border: 1px solid rgba(167, 243, 208, 0.9);
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    min-height: 100%;
    text-decoration: none !important;
    color: inherit !important;
    -webkit-text-fill-color: inherit !important;
    transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
    cursor: pointer;
}
a.ft-vip-promo-point:hover,
a.ft-vip-promo-point:focus {
    background: #f0fdf4;
    border-color: #6ee7b7;
    transform: translateY(-1px);
    color: inherit !important;
    -webkit-text-fill-color: inherit !important;
    text-decoration: none !important;
}
a.ft-vip-promo-point strong {
    display: block;
    font-size: 0.9rem;
    font-weight: 800;
    color: #111827;
    line-height: 1.3;
}
a.ft-vip-promo-point:hover strong,
a.ft-vip-promo-point:focus strong {
    color: #059669;
}
.ft-vip-promo-tags {
    display: block;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.35;
    color: #059669 !important;
    -webkit-text-fill-color: #059669 !important;
}
a.ft-vip-promo-point > span:last-child {
    display: block;
    font-size: 0.76rem;
    line-height: 1.45;
    color: #6b7280 !important;
    -webkit-text-fill-color: #6b7280 !important;
    margin-top: auto;
}
@media (max-width: 991.98px) {
    .ft-vip-promo {
        padding: 1.05rem 1rem;
    }
    .ft-vip-promo-points {
        grid-template-columns: 1fr 1fr;
    }
}
@media (max-width: 575.98px) {
    .ft-vip-promo-points {
        grid-template-columns: 1fr;
    }
}

/* ---------- 频道弱化 Tab + 列表页统计卡（收敛自各频道页内联） ---------- */
.ft-channel-tabs--compact {
    margin: -0.35rem 0 0.85rem;
    padding: 0.45rem 0 0;
    border-top: none;
}
.ft-channel-tabs--compact .ft-channel {
    font-size: 0.72rem;
    padding: 0.22rem 0.58rem;
}

.featured-family-page .stat-card-mini {
    padding: 1rem;
    border-radius: 12px;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    box-shadow: 0 4px 16px rgba(17, 24, 39, 0.03);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.featured-family-page .stat-card-mini:hover {
    border-color: #86efac;
    box-shadow: 0 8px 22px rgba(5, 150, 105, 0.08);
    transform: none;
}
.featured-family-page .stat-icon-mini {
    font-size: 1.35rem;
    color: #059669;
}
.featured-family-page .featured-badge,
.featured-family-page .badge.featured-badge,
.featured-family-page .ft-card-badge.featured-badge {
    background: #059669 !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    border: none;
    font-weight: 700;
    font-size: 0.68rem;
    padding: 0.22rem 0.5rem;
    border-radius: 6px;
    letter-spacing: 0;
    text-transform: none;
    box-shadow: none;
}
