/* ============================================================
   程序员工具箱列表页 —— 页面私有样式（/devtools）
   通用骨架（dt-hero / dt-grid / dt-card / dt-filter-bar / dt-empty）
   复用 public/css/devtools.css，这里只补列表页独有结构
   ============================================================ */

/* 筛选 + 搜索工具条 */
.dti-toolbar {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-bottom: 18px;
}

.dti-toolbar-main {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1;
    min-width: 260px;
}

.dti-search {
    position: relative;
    flex: 1;
    min-width: 200px;
}

.dti-search .icon {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 14px;
    color: var(--c-text-muted);
    pointer-events: none;
}

.dti-search-input {
    width: 100%;
    padding: 10px 14px 10px 34px;
    border: 1px solid var(--c-border);
    border-radius: 11px;
    background: var(--c-bg-card);
    color: var(--c-text);
    font-family: inherit;
    font-size: 14px;
    transition: border-color .18s ease, box-shadow .18s ease;
}

.dti-search-input::placeholder { color: var(--c-text-muted); }

.dti-search-input:focus {
    outline: none;
    border-color: var(--c-primary);
    box-shadow: 0 0 0 3px rgba(0, 102, 255, .14);
}

/* 分类区块：每个分类一个 section + h2，利于搜索引擎理解结构 */
.dti-cat { margin-bottom: 30px; }
.dti-cat:last-of-type { margin-bottom: 12px; }

.dti-cat-head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--c-border);
}

.dti-cat-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 18px;
    font-weight: 800;
    color: var(--c-text);
    letter-spacing: -0.01em;
}

.dti-cat-title .bar {
    display: inline-block;
    width: 4px;
    height: 17px;
    border-radius: 2px;
    background: var(--c-primary);
}

.dti-cat-num {
    padding: 2px 9px;
    border-radius: 999px;
    background: var(--c-bg-soft);
    border: 1px solid var(--c-border);
    font-size: 12px;
    font-weight: 700;
    color: var(--c-text-sub);
}

/* 列表页说明长文 */
.dti-prose {
    margin-bottom: 34px;
    padding: 24px 26px;
    background: var(--c-bg-card);
    border: 1px solid var(--c-border);
    border-radius: var(--radius-lg, 18px);
}

.dti-prose h2 {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 18px;
    font-weight: 800;
    color: var(--c-text);
    letter-spacing: -0.01em;
    margin-bottom: 12px;
}

.dti-prose h2:not(:first-of-type) { margin-top: 26px; }

.dti-prose h3 {
    font-size: 15px;
    font-weight: 700;
    color: var(--c-text);
    margin: 18px 0 8px;
}

.dti-prose p {
    font-size: 14.5px;
    line-height: 1.9;
    color: var(--c-text-sub);
}

.dti-prose p + p { margin-top: 12px; }
.dti-prose b, .dti-prose strong { color: var(--c-text); font-weight: 700; }

.dti-prose code {
    padding: 1px 6px;
    border-radius: 5px;
    background: var(--c-bg-soft);
    border: 1px solid var(--c-border);
    font-size: 13px;
    color: var(--c-primary);
}

.dti-ul { margin: 10px 0 0 20px; }
.dti-ul li {
    font-size: 14.5px;
    line-height: 1.9;
    color: var(--c-text-sub);
}
.dti-ul li + li { margin-top: 4px; }

/* 筛选 / 搜索造成的隐藏：用 hidden 属性，避免任何内联样式 */
.dt-card[hidden],
.dti-cat[hidden],
.dt-empty[hidden],
.dti-hit[hidden] { display: none !important; }

/* 结果计数 */
.dti-count {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--c-text-sub);
}
.dti-count b { color: var(--c-primary); font-size: 15px; }

@media (max-width: 640px) {
    .dti-prose { padding: 18px 16px; }
    .dti-prose h2 { font-size: 16.5px; }
    .dti-cat-title { font-size: 16.5px; }
    .dti-toolbar-main { min-width: 100%; }
}
