/* ==========================================================
 * deepspace 模板 - UI 优化补丁 (v1)
 * 修复项：
 *  1. 移动端触控区 (44px 标准)
 *  2. 移动端表格/表单/广告响应式优化
 *  3. 文章下载项图标 (不依赖不存在的 iconfont)
 *  4. 文章横幅样式规范
 *  5. 排行榜 tab 触控区优化
 *  6. 移动端侧边栏宽度调整
 *  7. 移动端字体层级微调
 *  8. 友链/统计/搜索等组件统一间距
 *  9. 焦点环优化
 * 10. 移动端按钮自适应
 * ========================================================== */

/* ==================== 焦点环增强 ==================== */
:focus-visible {
    outline: 2px solid var(--ds-accent);
    outline-offset: 2px;
    border-radius: 4px;
}

/* ==================== 全局触控区最小尺寸 ==================== */
.ds-btn, .ds-pager__btn, .ds-nav__link, .ds-quickbar__item,
.ds-rank-tab, .ds-theme-toggle, .ds-side-toggle, .ds-search__submit,
.ds-search__eng-btn, .ds-modal__close, .ds-side-close {
    min-height: 44px;
    min-width: 44px;
}
.ds-btn--sm, .ds-pager__btn, .ds-rank-tab {
    min-height: 36px;
}
.ds-pager__btn { padding: 8px 16px; }
.ds-rank-tab   { padding: 8px var(--ds-gap-4); }

/* ==================== 移动端基础调整 ==================== */
@media (max-width: 1024px) {
    /* 容器边距增大, 增加呼吸感 */
    .ds-container { padding: 0 var(--ds-gap-4); }
    .ds-main { gap: var(--ds-gap-4); }
}
@media (max-width: 768px) {
    body { font-size: var(--ds-fz-14); -webkit-text-size-adjust: 100%; }

    /* 容器与主布局 */
    .ds-container { padding: 0 var(--ds-gap-3); }
    .ds-main { padding: var(--ds-gap-4) 0 var(--ds-gap-6); padding-left: var(--ds-gap-3); padding-right: var(--ds-gap-3); gap: var(--ds-gap-4); }

    /* Header 高度调整 */
    .ds-header__inner { height: 56px; gap: var(--ds-gap-3); padding: 0 var(--ds-gap-3); }
    .ds-logo { font-size: var(--ds-fz-16); }
    .ds-logo img { width: 28px; height: 28px; border-radius: 6px; }

    /* 快捷分类导航条 */
    .ds-quickbar { top: 56px; }
    .ds-quickbar__inner { height: 44px; padding: 0 var(--ds-gap-3); gap: var(--ds-gap-1); }
    .ds-quickbar__item { height: 32px; padding: 0 var(--ds-gap-3); font-size: var(--ds-fz-12); }

    /* 卡片间距 */
    .ds-card { margin-bottom: var(--ds-gap-4); border-radius: var(--ds-radius); }
    .ds-card__head { padding: var(--ds-gap-3) var(--ds-gap-4); }
    .ds-card__title { font-size: var(--ds-fz-15); }
    .ds-card__body { padding: var(--ds-gap-3) var(--ds-gap-4); }

    /* 移动端站点卡片网格紧凑 */
    .ds-sites { grid-template-columns: repeat(2, 1fr); gap: var(--ds-gap-2); }
    .ds-site { padding: var(--ds-gap-2); gap: var(--ds-gap-2); }
    .ds-site__ico { width: 36px; height: 36px; }
    .ds-site__name { font-size: var(--ds-fz-13); }
    .ds-site__desc { font-size: 11px; }

    /* mini 变体移动端 3 列 */
    .ds-sites--mini { grid-template-columns: repeat(3, 1fr); }
    .ds-sites--mini .ds-site__ico { width: 32px; height: 32px; }

    /* 文章网格单列 */
    .ds-post-grid { grid-template-columns: 1fr; gap: var(--ds-gap-3); }

    /* 站点详情 */
    .ds-site-detail__hero { padding: var(--ds-gap-4) var(--ds-gap-3); }
    .ds-site-detail__head { gap: var(--ds-gap-3); margin-bottom: var(--ds-gap-3); }
    .ds-site-detail__ico { width: 56px; height: 56px; border-radius: 10px; }
    .ds-site-detail__name { font-size: var(--ds-fz-20); }
    .ds-site-detail__stats { grid-template-columns: repeat(2, 1fr); gap: var(--ds-gap-2); margin: var(--ds-gap-3) 0; }
    .ds-site-detail__stat { padding: var(--ds-gap-2); }
    .ds-site-detail__stat-v { font-size: var(--ds-fz-18); }
    .ds-site-detail__actions { gap: var(--ds-gap-2); }
    .ds-site-detail__actions .ds-btn { flex: 1 1 auto; min-width: 0; }

    /* 文章详情 */
    .ds-article { padding: var(--ds-gap-4) var(--ds-gap-3); }
    .ds-article__head { margin-bottom: var(--ds-gap-4); padding-bottom: var(--ds-gap-3); }
    .ds-article__title { font-size: var(--ds-fz-20); line-height: 1.4; }
    .ds-article__meta { font-size: 11px; gap: var(--ds-gap-3); }
    .ds-article__body { font-size: var(--ds-fz-14); line-height: 1.8; }
    .ds-article__body img { border-radius: 8px; }
    .ds-article__downloads { padding: var(--ds-gap-3); margin: var(--ds-gap-4) 0; }
    .ds-article__downloads h4 { font-size: var(--ds-fz-14); margin-bottom: var(--ds-gap-2); }
    .ds-article__downloads li { padding: var(--ds-gap-3); gap: var(--ds-gap-2); }
    .ds-article__downloads li a { padding: 6px 12px; }

    /* 移动端表格转卡片 */
    .ds-info-table { border: 0; }
    .ds-info-table thead { display: none; }
    .ds-info-table tr {
        display: block;
        margin-bottom: var(--ds-gap-3);
        padding: var(--ds-gap-3);
        background: var(--ds-bg-2);
        border: 1px solid var(--ds-border);
        border-radius: var(--ds-radius);
    }
    .ds-info-table td {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: var(--ds-gap-2);
        padding: 6px 0;
        border-bottom: 1px dashed var(--ds-border);
        font-size: var(--ds-fz-13);
    }
    .ds-info-table td:last-child { border-bottom: 0; }
    .ds-info-table td::before {
        content: attr(data-label);
        color: var(--ds-text-2);
        font-size: var(--ds-fz-12);
        flex: 0 0 auto;
    }

    /* 排行榜 tab 横向滚动 */
    .ds-rank-tabs {
        width: 100%;
        overflow-x: auto;
        scrollbar-width: none;
        flex-wrap: nowrap;
    }
    .ds-rank-tabs::-webkit-scrollbar { display: none; }
    .ds-rank-tab { flex: 0 0 auto; }
    .ds-rank__item { padding: 10px 0; }
    .ds-rank__name { font-size: var(--ds-fz-12); }

    /* 侧边栏抽屉 */
    .ds-side {
        width: 86%;
        max-width: 320px;
        padding: var(--ds-gap-5) var(--ds-gap-4) var(--ds-gap-5);
        box-shadow: var(--ds-shadow-lg);
    }
    .ds-side-close {
        width: 36px; height: 36px;
        top: 14px; right: 14px;
    }

    /* 表单 */
    .ds-form { gap: var(--ds-gap-3); }
    .ds-form-item { gap: 8px; }
    .ds-form-item__label { font-size: var(--ds-fz-13); }
    .ds-input, .ds-textarea, .ds-select {
        padding: 12px var(--ds-gap-3);
        font-size: 16px;  /* 防止 iOS 缩放 */
        min-height: 44px;
    }
    .ds-textarea { min-height: 120px; }
    .ds-form-actions { flex-direction: column; gap: var(--ds-gap-2); margin-top: var(--ds-gap-4); }
    .ds-form-actions .ds-btn { width: 100%; }

    /* 统计卡 (4 列 -> 2 列) */
    .ds-stat { grid-template-columns: 1fr 1fr; gap: var(--ds-gap-2); }
    .ds-stat li { padding: var(--ds-gap-3) var(--ds-gap-2); }
    .ds-stat__k { font-size: 11px; }
    .ds-stat__v { font-size: var(--ds-fz-18); }

    /* 单页 (about 等) */
    .ds-page { padding: var(--ds-gap-4) var(--ds-gap-3); }
    .ds-page h2 { font-size: var(--ds-fz-20); }
    .ds-page p { font-size: var(--ds-fz-14); line-height: 1.8; }

    /* 404 */
    .ds-404 { padding: var(--ds-gap-5) var(--ds-gap-3); }
    .ds-404__code { font-size: 80px; letter-spacing: -2px; }
    .ds-404__title { font-size: var(--ds-fz-20); }
    .ds-404__desc { font-size: var(--ds-fz-13); }

    /* goto */
    .ds-goto { padding: var(--ds-gap-4) var(--ds-gap-3); min-height: 50vh; }
    .ds-goto__spinner { width: 48px; height: 48px; }
    .ds-goto__title { font-size: var(--ds-fz-18); }

    /* 友链 */
    .ds-links { gap: var(--ds-gap-2); }
    .ds-links a { padding: 6px 12px; font-size: var(--ds-fz-12); }

    /* 公告 */
    .ds-notice { padding: var(--ds-gap-2) var(--ds-gap-3); font-size: var(--ds-fz-12); }

    /* 广告位 */
    .ds-ads--inline { flex-direction: column; gap: var(--ds-gap-2); }
    .ds-ad { margin-bottom: var(--ds-gap-2); }

    /* 工具网格 */
    .ds-tool-grid { grid-template-columns: repeat(2, 1fr); gap: var(--ds-gap-2); }
    .ds-tool-card { padding: var(--ds-gap-4) var(--ds-gap-3); }

    /* 分页 */
    .ds-pager { gap: var(--ds-gap-2); flex-wrap: wrap; }
    .ds-pager__btn { padding: 8px 14px; }

    /* 弹窗 */
    .ds-modal { padding: var(--ds-gap-3); }
    .ds-modal__head { padding: var(--ds-gap-3) var(--ds-gap-4); }
    .ds-modal__body { padding: var(--ds-gap-4); }
    .ds-modal__foot { padding: var(--ds-gap-3) var(--ds-gap-4); flex-direction: column-reverse; }
    .ds-modal__foot .ds-btn { width: 100%; }
}

/* ==================== 320px 超窄屏适配 ==================== */
@media (max-width: 360px) {
    .ds-card__head { padding: var(--ds-gap-3); }
    .ds-card__body { padding: var(--ds-gap-3); }
    .ds-sites { grid-template-columns: 1fr; }
    .ds-sites--mini { grid-template-columns: repeat(2, 1fr); }
    .ds-stat { grid-template-columns: 1fr; }
    .ds-tool-grid { grid-template-columns: 1fr; }
    .ds-rank-tabs { padding: 3px; }
    .ds-rank-tab { padding: 6px 12px; font-size: var(--ds-fz-12); }
}

/* ==================== 文章横幅 ==================== */
.ds-banner { overflow: hidden; }
.ds-banner .ds-card__body { padding: 0; }
.ds-banner img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 240px;
    object-fit: cover;
    transition: transform var(--ds-dur-slow) var(--ds-ease);
}
.ds-banner a:hover img { transform: scale(1.02); }

/* ==================== 文章下载项图标修复 (不依赖不存在的 iconfont) ==================== */
.ds-article__downloads li {
    display: flex;
    align-items: center;
    gap: var(--ds-gap-3);
    padding: 10px var(--ds-gap-3);
    background: var(--ds-bg-3);
    border-radius: 6px;
    font-size: var(--ds-fz-13);
    color: var(--ds-text-1);
    border: 1px solid transparent;
    transition: border-color var(--ds-dur) var(--ds-ease);
}
.ds-article__downloads li:hover { border-color: var(--ds-border-strong); }
.ds-article__downloads li::before {
    content: "";
    display: inline-block;
    width: 16px; height: 16px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300e5ff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/><polyline points='7 10 12 15 17 10'/><line x1='12' y1='15' x2='12' y2='3'/></svg>");
    background-size: contain;
    background-repeat: no-repeat;
    flex: 0 0 16px;
}
.ds-article__downloads li a {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    background: var(--ds-accent-soft);
    color: var(--ds-accent);
    border-radius: 999px;
    font-size: var(--ds-fz-12);
    margin-left: auto;
    transition: all var(--ds-dur) var(--ds-ease);
}
.ds-article__downloads li a:hover {
    background: var(--ds-accent);
    color: var(--ds-bg-0);
}

/* ==================== 文章上下篇导航 ==================== */
.ds-entry-nav {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--ds-gap-3);
    margin: var(--ds-gap-4) 0;
}
.ds-entry-nav > div {
    padding: var(--ds-gap-3) var(--ds-gap-4);
    background: var(--ds-bg-2);
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
    min-height: 56px;
    display: flex;
    align-items: center;
    transition: all var(--ds-dur) var(--ds-ease);
}
.ds-entry-nav > div:hover { border-color: var(--ds-accent); background: var(--ds-surface-hover); }
.ds-entry-nav a {
    color: var(--ds-text-1);
    font-size: var(--ds-fz-13);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: block;
    width: 100%;
}
.ds-entry-nav a:hover { color: var(--ds-accent); }
@media (max-width: 640px) {
    .ds-entry-nav { grid-template-columns: 1fr; }
}

/* ==================== 备案号图片统一尺寸 ==================== */
.ds-footer__icp img,
img[alt*="公安"] {
    display: inline-block;
    width: 14px;
    height: 14px;
    vertical-align: -2px;
    margin-right: 4px;
}

/* ==================== 公告 (notice) 元素交互 ==================== */
.ds-notice marquee { min-width: 0; flex: 1 1 auto; }

/* ==================== 主题切换按钮 hover 优化 ==================== */
.ds-theme-toggle:hover { transform: rotate(15deg); }

/* ==================== 移动端列表滚动防溢出 ==================== */
.ds-nav__list, .ds-quickbar__inner {
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
}

/* ==================== 输入框去除 iOS 默认样式 ==================== */
input[type="search"] { -webkit-appearance: none; appearance: none; }
input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; }

/* ==================== 移动端 iframe 广告 ==================== */
.ds-card__body iframe {
    border: 0;
    width: 100%;
    display: block;
}

/* ==================== 移动端抓取文字省略适配 ==================== */
@media (max-width: 768px) {
    .ds-post-card__title, .ds-site__name {
        -webkit-line-clamp: 1;
    }
    .ds-post-card__excerpt {
        -webkit-line-clamp: 2;
    }
}

/* ==================== 搜索菜单移动端友好 ==================== */
@media (max-width: 768px) {
    .ds-search__eng-menu {
        min-width: 100px;
        right: 0;
        left: auto;
    }
    .ds-search__eng-menu button {
        padding: 10px 12px;
        font-size: var(--ds-fz-14);
    }
}

/* ==================== 打印样式 ==================== */
@media print {
    .ds-header, .ds-quickbar, .ds-footer, .ds-side, .ds-mask, .ds-modal, .ds-toast-wrap { display: none !important; }
    body { background: #fff; color: #000; }
    .ds-card { break-inside: avoid; }
}

/* ==================== 归档页 (archives) ==================== */
.ds-archive-links {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ds-gap-3);
}
.ds-archive-links .ds-btn { text-decoration: none; }
.ds-archive-year h3 {
    margin: var(--ds-gap-5) 0 var(--ds-gap-3);
    padding-left: var(--ds-gap-3);
    border-left: 4px solid var(--ds-accent);
    color: var(--ds-text-0);
    font-size: var(--ds-fz-16);
}
.ds-archive-year:first-child h3 { margin-top: 0; }

/* 热搜网格 */
.ds-hot-grid { gap: var(--ds-gap-4); }
.ds-hot-card {
    display: flex;
    flex-direction: column;
    margin-bottom: 0;
}
.ds-hot-body {
    flex: 1 1 auto;
    max-height: 380px;
    overflow-y: auto;
    padding-right: 4px;
}
.ds-hot-body::-webkit-scrollbar { width: 5px; }
.ds-hot-body::-webkit-scrollbar-thumb {
    background: var(--ds-border-strong);
    border-radius: 4px;
}
.ds-card__foot {
    padding: var(--ds-gap-2) var(--ds-gap-5);
    border-top: 1px dashed var(--ds-border);
    font-size: var(--ds-fz-12);
    color: var(--ds-text-3);
    text-align: right;
}

/* 热搜标签 */
.ds-hot-tag {
    flex: 0 0 auto;
    font-size: 11px;
    font-weight: 700;
    color: #fff;
    padding: 0 5px;
    height: 16px;
    line-height: 16px;
    border-radius: 4px;
}
.ds-hot-tag--hot { background: #ff3852; }
.ds-hot-tag--new { background: #ff9406; }

/* 老农历列表 */
.ds-nongli { list-style: none; margin: 0; padding: 0; }
.ds-nongli li {
    display: flex;
    gap: var(--ds-gap-3);
    padding: 7px 0;
    border-bottom: 1px dashed var(--ds-border);
    font-size: var(--ds-fz-13);
    color: var(--ds-text-1);
    line-height: 1.6;
}
.ds-nongli li:last-child { border-bottom: 0; }
.ds-nongli__k {
    flex: 0 0 auto;
    width: 36px;
    font-weight: 700;
    color: var(--ds-text-0);
}
.ds-nongli__k--yi { color: var(--ds-success); }
.ds-nongli__k--ji { color: var(--ds-danger); }
.ds-nongli__v { flex: 1 1 auto; min-width: 0; }
.ds-nongli__v i { font-style: normal; margin-right: 4px; }

@media (max-width: 768px) {
    .ds-hot-grid { gap: var(--ds-gap-3); }
    .ds-hot-body { max-height: 320px; }
    .ds-card__foot { padding: var(--ds-gap-2) var(--ds-gap-3); }
}

/* ==================== 返回顶部按钮 ==================== */
.ds-backtop {
    position: fixed;
    right: 20px;
    bottom: 20px;
    width: 44px;
    height: 44px;
    display: none;
    align-items: center;
    justify-content: center;
    background: var(--ds-bg-3);
    color: var(--ds-accent);
    border: 1px solid var(--ds-border-strong);
    border-radius: 50%;
    box-shadow: var(--ds-shadow-md);
    z-index: 90;
    cursor: pointer;
    transition: all var(--ds-dur) var(--ds-ease);
    opacity: 0;
    transform: translateY(8px);
}
.ds-backtop.is-show {
    display: inline-flex;
    opacity: 1;
    transform: translateY(0);
}
.ds-backtop:hover {
    background: var(--ds-accent);
    color: var(--ds-bg-0);
    transform: translateY(-2px);
}
@media (max-width: 768px) {
    .ds-backtop { right: 14px; bottom: 14px; width: 40px; height: 40px; }
}

/* ==================== 微信二维码 (footer) ==================== */
.ds-footer__wx {
    margin-top: var(--ds-gap-3);
    display: flex;
    justify-content: center;
}
.ds-footer__wx img {
    width: 100px;
    height: 100px;
    border-radius: 8px;
    border: 1px solid var(--ds-border);
}
@media (max-width: 480px) {
    .ds-footer__wx img { width: 80px; height: 80px; }
}

/* ==================== 底部免责声明 / 统计代码 ==================== */
.ds-footer__legal,
.ds-footer__tj {
    margin-top: var(--ds-gap-3);
    font-size: var(--ds-fz-12);
    color: var(--ds-text-3);
    line-height: 1.7;
}
.ds-footer__tj a { color: var(--ds-text-1); }
.ds-footer__tj a:hover { color: var(--ds-accent); }

/* ==================== 侧栏小标题图标统一 ==================== */
.ds-side .ds-card__title {
    font-size: var(--ds-fz-14);
}

/* ==================== 头部中段屏幕适配 (≤1200px) ==================== */
@media (max-width: 1200px) {
    .ds-header__inner { gap: var(--ds-gap-3); }
    .ds-logo__tag { display: none; }
    .ds-nav { flex: 0 1 auto; }
}
@media (max-width: 1100px) {
    .ds-hide-tablet { display: none !important; }
    .ds-search { flex: 1 1 240px; min-width: 0; }
}

/* ==================== 仅移动端显示 (修复侧栏双入口) ==================== */
.ds-only-mobile { display: none !important; }
@media (max-width: 768px) {
    .ds-only-mobile { display: block !important; }
}

/* ==================== 侧栏内的导航 / 搜索 ==================== */
.ds-side .ds-side-nav .ds-nav__list,
.ds-side .ds-side-search .ds-search {
    flex-wrap: wrap;
}
.ds-side .ds-side-nav .ds-nav__list {
    flex-direction: column;
    align-items: stretch;
    gap: var(--ds-gap-1);
    overflow: visible;
}
.ds-side .ds-side-nav .ds-nav__link {
    width: 100%;
    height: 40px;
    padding: 0 var(--ds-gap-3);
    border-radius: var(--ds-radius);
}
.ds-side .ds-side-search .ds-search {
    width: 100%;
}
.ds-side .ds-side-search .ds-search__input {
    flex: 1 1 auto;
    min-width: 0;
}

/* ==================== a11y 优化 ==================== */
.ds-theme-toggle [data-icon-light],
.ds-theme-toggle [data-icon-dark] {
    display: none;
}
html[data-theme="light"] .ds-theme-toggle [data-icon-light] { display: inline; }
html[data-theme="dark"]  .ds-theme-toggle [data-icon-dark]  { display: inline; }

/* ==================== 广告 iframe 容器 ==================== */
.ds-ads-frame { padding: 0 !important; display: flex; flex-direction: column; gap: var(--ds-gap-2); }
.ds-ads-frame iframe {
    display: block;
    width: 100%;
    height: 120px;
    border: 0;
    overflow: hidden;
}

/* ==================== 抽离的内联样式类 ==================== */

/* 首页统计条 (4 列, 移动端折叠) */
.ds-stat--4 { grid-template-columns: repeat(4, 1fr); }
.ds-stat--3 { grid-template-columns: repeat(3, 1fr); gap: var(--ds-gap-3); }
.ds-stat--2 { grid-template-columns: repeat(2, 1fr); }
.ds-stat--block { margin-bottom: var(--ds-gap-4); }
@media (max-width: 768px) {
    .ds-stat--4 { grid-template-columns: repeat(2, 1fr); }
    .ds-stat--3 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 360px) {
    .ds-stat--4, .ds-stat--3, .ds-stat--2 { grid-template-columns: 1fr; }
}

/* 站点详情描述 */
.ds-site-detail__desc {
    color: var(--ds-text-1);
    font-size: var(--ds-fz-14);
    line-height: 1.7;
    margin-bottom: var(--ds-gap-4);
    position: relative;
    z-index: 1;
}

/* 评分高亮 */
.ds-site-detail__stat-v--star { color: var(--ds-warning); }

/* URL 单元格 */
.ds-info-table .ds-info-table__url { word-break: break-all; }

/* 索引地址区 */
.ds-site-detail__seo {
    font-size: var(--ds-fz-13);
    line-height: 1.9;
}
.ds-site-detail__seo p { margin: var(--ds-gap-2) 0; }
.ds-site-detail__seo strong { color: var(--ds-accent); }

/* 文章封面图 */
.ds-article__cover {
    width: 100%;
    border-radius: var(--ds-radius);
    margin-bottom: var(--ds-gap-4);
}

/* 文章免责声明 */
.ds-article__disclaimer {
    margin-top: var(--ds-gap-4);
    font-size: var(--ds-fz-12);
    color: var(--ds-text-3);
    line-height: 1.8;
    border-left: 3px solid var(--ds-warning);
    padding-left: var(--ds-gap-3);
}
.ds-article__disclaimer-card { margin-top: var(--ds-gap-4); }
.ds-article__disclaimer-card .ds-card__body { padding: var(--ds-gap-3) var(--ds-gap-4); }
.ds-article__download-btn { margin-left: auto; color: var(--ds-accent); }

/* 表单行 (协议+域名+TDK) */
.ds-form-row {
    display: flex;
    gap: var(--ds-gap-2);
    flex-wrap: wrap;
    align-items: center;
}
.ds-form-row .ds-select--auto { width: auto; flex: 0 0 auto; }
.ds-form-row .ds-input--grow { flex: 1; min-width: 200px; }

/* 验证码图片 */
.ds-captcha-img {
    height: 44px;
    cursor: pointer;
    border-radius: var(--ds-radius);
    border: 1px solid var(--ds-border);
}
@media (max-width: 768px) {
    .ds-captcha-img { height: 48px; }
}

/* 单选按钮组 */
.ds-radio-group {
    display: flex;
    gap: var(--ds-gap-3);
    flex-wrap: wrap;
}
.ds-radio {
    display: flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
}

/* 通用行高/文字 */
.ds-lh-19 { line-height: 1.9; }
.ds-lh-2  { line-height: 2; }
.ds-text-accent { color: var(--ds-accent); }
.ds-text-warning { color: var(--ds-warning); }
.ds-text-0 { color: var(--ds-text-0); }
.ds-text-1 { color: var(--ds-text-1); }
.ds-text-2 { color: var(--ds-text-2); }
.ds-text-3 { color: var(--ds-text-3); }

/* 关闭提示 */
.ds-form-closed {
    text-align: center;
    padding: var(--ds-gap-5) 0;
}
.ds-form-closed__title {
    font-size: var(--ds-fz-20);
    color: var(--ds-text-1);
    margin-bottom: var(--ds-gap-3);
}
.ds-form-closed__desc { color: var(--ds-text-3); }

/* 关于页微信图 */
.ds-about__wx {
    width: 150px;
    height: 150px;
    border-radius: var(--ds-radius);
}
@media (max-width: 480px) {
    .ds-about__wx { width: 120px; height: 120px; }
}

/* goto 页脚提示 */
.ds-goto__tip {
    margin-top: var(--ds-gap-4);
    color: var(--ds-text-3);
    font-size: var(--ds-fz-12);
}

/* 404 页按钮组 */
.ds-404__actions {
    display: flex;
    gap: var(--ds-gap-3);
    flex-wrap: wrap;
    justify-content: center;
}

/* 通用 margin 工具类 */
.ds-margin-top-5 { margin-top: var(--ds-gap-5); }

/* 搜索高亮 */
.ds-highlight { color: var(--ds-accent); }

/* 友链页 gap 修正 */
.ds-links--compact { gap: var(--ds-gap-2); }

/* 表单按钮统一 (申请/快审/投稿) */
.ds-form-actions .ds-btn--block.ds-btn--lg { height: 48px; }

/* 首页统计条容器 */
.ds-stat-bar { padding: var(--ds-gap-3) var(--ds-gap-5); }
.ds-pad-compact { padding: var(--ds-gap-3); }

/* 搜索框桌面端宽度优化 (修复 C1) */
@media (min-width: 1280px) {
    .ds-search { flex: 1 1 360px; max-width: 400px; }
}
@media (max-width: 1100px) {
    .ds-search { flex: 1 1 200px; min-width: 0; }
}
