/* =========================================
           全局变量
           ========================================= */
        :root {
            --primary: #1a1a1a;
            --secondary: #666666;
            --bg-color: #fcfcfc;
            --border-color: #e2e8f0;
            --accent-teal: #008080;
            --accent-teal-light: #e6fffa;
            --card-radius: 8px;
        }

        body {
            font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Microsoft YaHei", sans-serif;
            background-color: var(--bg-color);
            color: var(--primary);
            line-height: 1.6;
            margin: 0;
            background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.04'/%3E%3C/svg%3E");
        }

        .container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
        a { text-decoration: none; color: inherit; transition: 0.3s; }
        * { box-sizing: border-box; }

        /* =========================================
           1. 顶部 Tab 筛选区 (核心修改)
           ========================================= */
        .filter-section {
            padding: 60px 0 40px;
            text-align: center; /* 居中布局更像选项卡 */
        }

        .page-title { font-size: 32px; font-weight: 700; margin-bottom: 30px; }

        /* Tab 容器 */
        .tab-wrapper {
            display: inline-flex;
            background: #fff;
            padding: 5px;
            border-radius: 50px;
            border: 1px solid #e0e0e0;
            box-shadow: 0 4px 20px rgba(0,0,0,0.03);
            margin-bottom: 30px;
        }

        /* Tab 按钮 */
        .tab-btn {
            padding: 10px 40px;
            border-radius: 40px;
            border: none;
            background: transparent;
            font-size: 15px;
            font-weight: 500;
            color: #666;
            cursor: pointer;
            transition: all 0.3s;
        }

        /* 选中状态 */
        .tab-btn.active {
            background: var(--accent-teal);
            color: #fff;
            box-shadow: 0 4px 10px rgba(0,128,128,0.3);
        }

        /* 次级筛选 (分类) */
        .sub-filter {
            display: flex;
            justify-content: center;
            gap: 15px;
            flex-wrap: wrap;
            margin-bottom: 20px;
        }
        .cat-link {
            font-size: 14px; color: #888; cursor: pointer; position: relative;
            padding-bottom: 2px;
        }
        .cat-link:hover, .cat-link.active { color: var(--accent-teal); font-weight: 600; }
        .cat-link.active::after {
            content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 2px; background: var(--accent-teal);
        }

        .result-count { font-size: 13px; color: #999; margin-top: 10px; }

        /* =========================================
           2. 插件列表 (增加动画效果)
           ========================================= */
        .plugin-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
            gap: 25px;
            margin-bottom: 60px;
            min-height: 300px; /* 防止筛选时高度塌陷太厉害 */
        }

        .plugin-card {
            background: #fff;
            border: 1px solid var(--border-color);
            border-radius: var(--card-radius);
            padding: 25px;
            transition: all 0.3s ease;
            display: flex; /* 默认显示 */
            flex-direction: column;
            position: relative;
            /* 筛选动画相关 */
            opacity: 1;
            transform: scale(1);
        }

        /* 隐藏时的样式 */
        .plugin-card.hidden {
            display: none;
        }

        /* 简单的淡入动画类 */
        .fade-in {
            animation: fadeIn 0.4s ease forwards;
        }

        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(10px); }
            to { opacity: 1; transform: translateY(0); }
        }

        .plugin-card:hover {
            transform: translateY(-4px);
            box-shadow: 0 10px 25px rgba(0,0,0,0.06);
            border-color: var(--accent-teal);
        }

        /* ... (卡片内部样式保持上一版不变) ... */
        .card-header { display: flex; align-items: flex-start; gap: 15px; margin-bottom: 15px; }
        .icon-wrapper { width: 72px; height: 72px; flex-shrink: 0; background: #f8f9fa; border-radius: 10px; border: 1px solid #eee; overflow: hidden; display: flex; align-items: center; justify-content: center; }
        .plugin-icon-img { width: 100%; height: 100%; object-fit: cover; }
        .icon-placeholder { font-size: 24px; font-weight: 700; color: var(--accent-teal); }
        .header-info { flex-grow: 1; }
        .plugin-title { font-size: 18px; font-weight: 700; color: #333; margin-bottom: 6px; line-height: 1.3; }
        .plugin-meta-row { display: flex; align-items: center; gap: 10px; font-size: 12px; color: #999; }
        .version-tag { background: #f0f0f0; padding: 2px 6px; border-radius: 4px; }
        .card-desc { font-size: 14px; color: #666; line-height: 1.6; margin-bottom: 20px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; height: 66px; }
        .card-footer { margin-top: auto; padding-top: 15px; border-top: 1px dashed #eee; display: flex; justify-content: space-between; align-items: center; }
        .price-group { display: flex; flex-direction: column; line-height: 1.2; }
        .price-label { font-size: 12px; color: #aaa; }
        .price-num { font-size: 18px; font-weight: 700; color: var(--primary); }
        .price-num.free { color: #2ecc71; }
        .price-num small { font-size: 12px; font-weight: normal; color: #999; }
        .btn-action { padding: 6px 18px; border: 1px solid var(--accent-teal); color: var(--accent-teal); border-radius: 4px; font-size: 13px; font-weight: 500; transition: all 0.2s; }
        .btn-action:hover { background: var(--accent-teal); color: #fff; }
        .status-badge { position: absolute; top: 20px; right: 20px; font-size: 12px; font-weight: 600; color: #ff4757; background: #fff0f1; padding: 2px 8px; border-radius: 4px; }

        /* 分页 */
        .pagination { display: flex; justify-content: center; gap: 8px; margin-bottom: 80px; }
        .page-link { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; border: 1px solid #e2e8f0; border-radius: 6px; color: #666; background: #fff; }
        .page-link:hover, .page-link.active { background: var(--accent-teal); border-color: var(--accent-teal); color: #fff; }
        .page-link.disabled { opacity: 0.5; cursor: not-allowed; }
