/* ============================================================
   源码七号站Style - Discuz 风格版块首页
   全部颜色走现有 CSS 变量，明暗主题自动跟随
   ============================================================ */

/* ---------- 分区（Discuz 的灰色分组栏） ---------- */
.dl-forum-cat {
    margin-bottom: var(--gap);
}

.dl-forum-cat-head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    background: var(--primary-bg);
    border: 1px solid var(--border);
    border-bottom: none;
    border-radius: var(--radius) var(--radius) 0 0;
}

.dl-forum-cat-head .dl-fc-ico {
    font-size: 14px;
    color: var(--primary);
}

.dl-forum-cat-head strong {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-dark);
}

.dl-forum-cat-head .dl-fc-count {
    margin-left: auto;
    font-size: 12px;
    color: var(--text-light);
}

.dl-forum-cat-head .dl-fc-arrow {
    font-size: 12px;
    color: var(--text-light);
    transition: transform .25s ease;
}

.dl-fc-toggle { cursor: pointer; user-select: none; }
.dl-fc-toggle:hover strong { color: var(--primary); }

.dl-forum-cat.dl-fc-collapsed .dl-fc-arrow { transform: rotate(-90deg); }
.dl-forum-cat.dl-fc-collapsed .dl-forum-cat-body { display: none; }

.dl-forum-cat-body {
    background: var(--bg-white);
    border: 1px solid var(--border);
    border-radius: 0 0 var(--radius) var(--radius);
    box-shadow: var(--shadow);
    overflow: hidden;
}

/* 没有分区标题时，版块列表自己是一个完整卡片 */
.dl-forum-cat-head + .dl-forum-cat-body { border-top: none; }
.dl-forum-cat > .dl-forum-cat-body:first-child { border-radius: var(--radius); }

/* ---------- 版块行 ---------- */
.dl-forum-row {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 15px 16px;
    border-bottom: 1px solid var(--border-row);
    transition: background .18s ease;
}

.dl-forum-row:last-child { border-bottom: none; }
.dl-forum-row:hover { background: var(--card-hover); }

/* 图标 */
.dl-fr-icon {
    position: relative;
    flex-shrink: 0;
}

.dl-fi-icon {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 10px;
    background: var(--primary-bg);
    border: 1px solid var(--border);
    overflow: hidden;
}

/* ------------------------------------------------------------
   上传图片的主题色遮罩
   ------------------------------------------------------------
   问题：自己传的 logo 往往是高饱和的原色（比如亮蓝底白字），
        跟旁边预制图标那种「深紫底 + 主题色线条」的调子对不上，很跳。
   做法：盖一层 --primary-bg 的半透明遮罩，把图往主题色上拉。
        强度由后台设置，通过 --dl-icon-mask 变量传进来。
   注意：只作用于 .dl-fi-img（上传的图），预制图标本身就是主题色，不能盖。
   ------------------------------------------------------------ */
.dl-fi-img::after {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--primary-bg);
    opacity: var(--dl-icon-mask, .3);
    pointer-events: none;
    transition: opacity .22s ease;
    border-radius: inherit;
}

/* 鼠标移到版块上时揭开遮罩，露出原图 —— 让遮罩看起来是有意为之，
   而不是图片被压暗了 */
.dl-forum-card:hover .dl-fi-img::after,
.dl-forum-row:hover .dl-fi-img::after,
.dl-fh-icon:hover .dl-fi-img::after {
    opacity: 0;
}

.dl-fi-icon img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.dl-fi-icon i {
    font-size: 22px;
    color: var(--text-light);
}

/* 有新帖时图标点亮 —— Discuz 的 forum_new 状态 */
.dl-fi-icon-new {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-bg);
}

.dl-fi-icon-new i { color: var(--primary); }

/* 今日新增角标 */
.dl-fr-today {
    position: absolute;
    top: -6px;
    right: -7px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 9px;
    background: var(--danger);
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    line-height: 18px;
    text-align: center;
    box-sizing: border-box;
}

/* 主体 */
.dl-fr-main {
    flex: 1;
    min-width: 0;
}

.dl-fr-name {
    margin: 0 0 4px;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
}

.dl-fr-name a { color: var(--text-dark); }
.dl-fr-name a:hover { color: var(--primary); }

.dl-fr-desc {
    margin: 0 0 8px;
    font-size: 12px;
    color: var(--text-light);
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* 子版块标签 */
.dl-fr-subs {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.dl-fr-sub {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    font-size: 12px;
    color: var(--text-mid);
    background: var(--bg-light);
    border: 1px solid var(--border-light);
    border-radius: 4px;
    line-height: 1.6;
}

.dl-fr-sub:hover {
    color: var(--primary);
    border-color: var(--primary-lighter);
    background: var(--primary-bg);
}

.dl-fr-sub em {
    font-style: normal;
    font-size: 11px;
    color: var(--text-light);
}

/* 统计列 */
.dl-fr-stat {
    flex-shrink: 0;
    width: 68px;
    text-align: center;
    line-height: 1.35;
}

.dl-fr-num {
    display: block;
    font-size: 15px;
    font-weight: 600;
    color: var(--text-dark);
}

.dl-fr-lab {
    display: block;
    font-size: 11px;
    color: var(--text-light);
    margin-bottom: 4px;
}

.dl-fr-stat .dl-fr-lab:last-child { margin-bottom: 0; }

/* 最后发表列 */
.dl-fr-last {
    flex-shrink: 0;
    width: 176px;
    padding-left: 14px;
    border-left: 1px solid var(--border-row);
    min-width: 0;
}

.dl-fr-last-title {
    display: block;
    font-size: 12.5px;
    color: var(--text-link);
    line-height: 1.45;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dl-fr-last-title:hover { color: var(--text-link-hover); text-decoration: underline; }

.dl-fr-last-meta {
    display: block;
    margin-top: 5px;
    font-size: 11px;
    color: var(--text-light);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dl-fr-last-meta i { font-style: normal; margin: 0 4px; opacity: .6; }

.dl-fr-last-empty {
    font-size: 12px;
    color: var(--text-light);
}

/* ---------- 版块页头部 ---------- */
.dl-forum-head {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px;
    margin-bottom: var(--gap);
}

.dl-fh-main {
    display: flex;
    align-items: center;
    gap: 14px;
    flex: 1;
    min-width: 0;
}

.dl-fh-icon .dl-fi-icon { width: 52px; height: 52px; }
.dl-fh-icon .dl-fi-icon i { font-size: 24px; color: var(--primary); }

.dl-fh-text { min-width: 0; }

.dl-fh-text h1 {
    margin: 0;
    font-size: 19px;
    font-weight: 600;
    color: var(--text-dark);
    line-height: 1.3;
}

.dl-fh-text p {
    margin: 5px 0 0;
    font-size: 12.5px;
    color: var(--text-light);
    line-height: 1.5;
}

.dl-fh-stat {
    display: flex;
    gap: 20px;
    flex-shrink: 0;
}

.dl-fh-stat span {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: 11px;
    color: var(--text-light);
    gap: 2px;
}

.dl-fh-stat b {
    font-size: 17px;
    font-weight: 600;
    color: var(--primary);
}

.dl-forum-subbar { margin-bottom: var(--gap); }

.dl-content-full { width: 100%; max-width: 100%; }

/* ---------- 移动端：版块行改两行卡片 ---------- */
@media (max-width: 768px) {
    .dl-forum-row {
        flex-wrap: wrap;
        gap: 10px;
        padding: 13px 12px;
    }

    .dl-fi-icon { width: 42px; height: 42px; }
    .dl-fi-icon i { font-size: 19px; }

    .dl-fr-main { flex: 1 1 auto; width: calc(100% - 56px); }

    .dl-fr-desc { margin-bottom: 6px; }

    /* 统计与最后发表并成一行，压在下方 */
    .dl-fr-stat {
        order: 3;
        width: auto;
        display: flex;
        align-items: baseline;
        gap: 5px;
        text-align: left;
    }

    .dl-fr-stat .dl-fr-num,
    .dl-fr-stat .dl-fr-lab {
        display: inline;
        font-size: 11.5px;
        margin: 0;
    }

    .dl-fr-stat .dl-fr-num { color: var(--text-mid); font-weight: 500; }
    .dl-fr-stat .dl-fr-lab { margin-right: 6px; }

    .dl-fr-last {
        order: 4;
        width: auto;
        flex: 1;
        padding-left: 10px;
        margin-left: auto;
        border-left: none;
        text-align: right;
    }

    .dl-fr-last-title { font-size: 11.5px; }
    .dl-fr-last-meta { margin-top: 2px; }

    /* 子版块标签横向滑动，避免撑高 */
    .dl-fr-subs {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding-bottom: 2px;
    }

    .dl-fr-subs::-webkit-scrollbar { display: none; }
    .dl-fr-sub { flex-shrink: 0; }

    /* 版块页头 */
    .dl-forum-head { flex-direction: column; align-items: flex-start; gap: 12px; }
    .dl-fh-stat { width: 100%; justify-content: space-around; }
    .dl-fh-text h1 { font-size: 17px; }
}

/* ============================================================
   宫格模式（Discuz 图片模式）
   每行几个由 --dl-fg-cols 控制，后台可配
   ============================================================ */
.dl-forum-grid {
    display: grid;
    grid-template-columns: repeat(var(--dl-fg-cols, 4), minmax(0, 1fr));
    gap: 2px;
    padding: 6px;
}

.dl-forum-card {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    padding: 12px 10px;
    border-radius: 10px;
    min-width: 0;
    transition: background .18s ease;
}

.dl-forum-card:hover { background: var(--card-hover); }

/* 卡片图标 */
.dl-fgc-icon {
    position: relative;
    flex-shrink: 0;
    display: block;
}

.dl-fgc-icon .dl-fi-icon {
    width: 62px;
    height: 62px;
    border-radius: 12px;
}

.dl-fgc-icon .dl-fi-icon i { font-size: 27px; }

/* 卡片文字区 */
.dl-fgc-info {
    flex: 1;
    min-width: 0;
    padding-top: 2px;
}

.dl-fgc-name {
    margin: 0 0 6px;
    font-size: 14.5px;
    font-weight: 600;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dl-fgc-name a { color: var(--text-dark); }
.dl-fgc-name a:hover { color: var(--primary); }

.dl-fgc-stat {
    margin: 0 0 4px;
    font-size: 12px;
    color: var(--text-light);
    line-height: 1.5;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dl-fgc-stat b {
    font-weight: 600;
    color: var(--text-mid);
    margin-left: 2px;
}

.dl-fgc-stat i {
    display: inline-block;
    width: 10px;
    font-style: normal;
}

.dl-fgc-last {
    margin: 0;
    font-size: 12px;
    color: var(--text-light);
    line-height: 1.5;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dl-fgc-last a { color: var(--text-link); }
.dl-fgc-last a:hover { color: var(--text-link-hover); text-decoration: underline; }
.dl-fgc-never { color: var(--text-light); opacity: .75; }

/* 卡片内的子版块，压成一行小字 */
.dl-fgc-subs {
    margin: 5px 0 0;
    font-size: 11.5px;
    line-height: 1.5;
    color: var(--text-light);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dl-fgc-subs a { color: var(--text-mid); }
.dl-fgc-subs a:hover { color: var(--primary); }
.dl-fgc-subs i { font-style: normal; margin: 0 4px; opacity: .5; }

/* 宫格里的今日角标略微收小 */
.dl-forum-card .dl-fr-today {
    top: -5px;
    right: -6px;
    min-width: 17px;
    height: 17px;
    line-height: 17px;
    font-size: 10.5px;
}

/* 窄屏渐进降列，避免卡片被压扁 */
@media (max-width: 1100px) {
    .dl-forum-grid { grid-template-columns: repeat(min(var(--dl-fg-cols, 4), 3), minmax(0, 1fr)); }
}

@media (max-width: 900px) {
    .dl-forum-grid { grid-template-columns: repeat(min(var(--dl-fg-cols, 4), 2), minmax(0, 1fr)); }
}

@media (max-width: 768px) {
    .dl-forum-grid {
        grid-template-columns: repeat(var(--dl-fg-cols-m, 2), minmax(0, 1fr));
        gap: 0;
        padding: 4px;
    }

    .dl-forum-card { padding: 10px 8px; gap: 9px; }
    .dl-fgc-icon .dl-fi-icon { width: 46px; height: 46px; border-radius: 10px; }
    .dl-fgc-icon .dl-fi-icon i { font-size: 21px; }
    .dl-fgc-name { font-size: 13.5px; margin-bottom: 4px; }
    .dl-fgc-stat, .dl-fgc-last { font-size: 11px; }
    .dl-fgc-subs { display: none; }
}

/* 单列时给卡片留出更舒展的间距 */
@media (max-width: 480px) {
    .dl-forum-grid { grid-template-columns: repeat(var(--dl-fg-cols-m, 2), minmax(0, 1fr)); }
}

/* ============================================================
   CMS 分区（混合显示）
   分区里的每个分类由 dl_cms_list 输出，本身已是完整 .dl-box 卡片，
   所以外层容器要透明化，避免卡片套卡片
   ============================================================ */
.dl-fc-cms .dl-forum-cat-head {
    border-radius: var(--radius);
    border-bottom: 1px solid var(--border);
    margin-bottom: var(--gap);
}

.dl-forum-cmsbody {
    background: transparent;
    border: none;
    box-shadow: none;
    border-radius: 0;
    overflow: visible;
    padding: 0;
}

/* dl_cms_list 自带 margin-bottom，最后一个去掉避免分区间距翻倍 */
.dl-forum-cmsbody > .dl-box:last-child { margin-bottom: 0; }

/* 折叠时连同内部卡片一起收起 */
.dl-forum-cat.dl-fc-collapsed .dl-forum-cmsbody { display: none; }

/* ============================================================
   主题列表 · 标题排版
   ------------------------------------------------------------
   两种换行对齐方式，由后台「标题换行对齐」控制：

   ① 顶格（.dl-ti-1）—— 内联文字流
      [分类标签] 标题第一行……
      标题第二行顶格            ← 文字绕到标签下方，贴左边缘
      优点：窄屏省空间；截断按「标签+标题」总长算，不会因标签长而少显示

   ② 缩进（.dl-ti-3）—— flex 悬挂
      [分类标签] 标题第一行……
                 标题第二行     ← 与第一行标题左对齐，层次感更强
      优点：宽屏下更整齐易读

   ③ 混合（.dl-ti-2，默认）—— PC 缩进 / 手机顶格
      宽屏空间足用缩进好看，窄屏空间紧用顶格省地方

   ⚠️ 两种方式的布局模型不同（内联流 vs flex），所以规则要分开写，
      不能只调一两个属性。
   ============================================================ */

/* ---------- 公共：容器基础 ---------- */
.dl-forum-tlist .dl-thread-item .t-subject {
    min-width: 0;
    padding-top: 0;
    line-height: 1.5;
    word-break: break-word;
}

/* 行高兜底：让单行标题的行不至于明显矮一截 */
.dl-forum-tlist .dl-tl-2 .dl-thread-item { min-height: 64px; }
.dl-forum-tlist .dl-tl-1 .dl-thread-item { min-height: 0; }

/* 图标顶部对齐，避免两行标题时图标掉到中间 */
.dl-forum-tlist .dl-tl-2 .dl-thread-item .t-icon {
    margin-top: 2px;
    align-self: flex-start;
}

/* 分类标签外观 */
.dl-forum-tlist .t-sub-tag {
    font-size: 12.5px;
    color: var(--text-light) !important;
}

.dl-forum-tlist .t-sub-tag:hover { color: var(--primary) !important; }


/* ============================================================
   【顶格】内联文字流
   适用：.dl-ti-1 全局；.dl-ti-2 在手机上（见下方媒体查询）
   ============================================================ */
.dl-forum-tlist .dl-tl-2.dl-ti-1 .dl-thread-item .t-subject {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    align-items: normal;
    -webkit-box-align: stretch;
    gap: 0;
}

.dl-forum-tlist .dl-tl-2.dl-ti-1 .dl-thread-item .t-subject .t-badge,
.dl-forum-tlist .dl-tl-2.dl-ti-1 .dl-thread-item .t-subject .t-sub-tag,
.dl-forum-tlist .dl-tl-2.dl-ti-1 .dl-thread-item .t-subject .t-title,
.dl-forum-tlist .dl-tl-2.dl-ti-1 .dl-thread-item .t-subject > a {
    display: inline;
    float: none;
    flex: none;
    max-width: none;
    min-width: 0;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    vertical-align: baseline;
    -webkit-line-clamp: none;
}

.dl-forum-tlist .dl-tl-2.dl-ti-1 .dl-thread-item .t-subject .t-badge,
.dl-forum-tlist .dl-tl-2.dl-ti-1 .dl-thread-item .t-subject .t-sub-tag {
    margin-right: 5px;
}


/* ============================================================
   【缩进】flex 悬挂
   适用：.dl-ti-3 全局；.dl-ti-2 在 PC 上（见下方媒体查询）
   ============================================================ */
.dl-forum-tlist .dl-tl-2.dl-ti-3 .dl-thread-item .t-subject {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    overflow: visible;
    -webkit-line-clamp: none;
}

.dl-forum-tlist .dl-tl-2.dl-ti-3 .dl-thread-item .t-subject .t-badge,
.dl-forum-tlist .dl-tl-2.dl-ti-3 .dl-thread-item .t-subject .t-sub-tag {
    display: inline-block;
    flex: 0 0 auto;
    margin-top: 1px;
    margin-right: 0;
    white-space: nowrap;
}

.dl-forum-tlist .dl-tl-2.dl-ti-3 .dl-thread-item .t-subject .t-title,
.dl-forum-tlist .dl-tl-2.dl-ti-3 .dl-thread-item .t-subject > a.t-title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    flex: 1 1 auto;
    min-width: 0;
    white-space: normal;
}


/* ============================================================
   【混合 · 默认】PC 缩进 / 手机顶格
   ============================================================ */

/* PC：走缩进 */
@media (min-width: 769px) {
    .dl-forum-tlist .dl-tl-2.dl-ti-2 .dl-thread-item .t-subject {
        display: flex;
        align-items: flex-start;
        gap: 6px;
        overflow: visible;
        -webkit-line-clamp: none;
    }

    .dl-forum-tlist .dl-tl-2.dl-ti-2 .dl-thread-item .t-subject .t-badge,
    .dl-forum-tlist .dl-tl-2.dl-ti-2 .dl-thread-item .t-subject .t-sub-tag {
        display: inline-block;
        flex: 0 0 auto;
        margin-top: 1px;
        margin-right: 0;
        white-space: nowrap;
    }

    .dl-forum-tlist .dl-tl-2.dl-ti-2 .dl-thread-item .t-subject .t-title,
    .dl-forum-tlist .dl-tl-2.dl-ti-2 .dl-thread-item .t-subject > a.t-title {
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        flex: 1 1 auto;
        min-width: 0;
        white-space: normal;
    }
}

/* 手机：走顶格 */
@media (max-width: 768px) {
    .dl-forum-tlist .dl-tl-2.dl-ti-2 .dl-thread-item .t-subject {
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        align-items: normal;
        -webkit-box-align: stretch;
        gap: 0;
    }

    .dl-forum-tlist .dl-tl-2.dl-ti-2 .dl-thread-item .t-subject .t-badge,
    .dl-forum-tlist .dl-tl-2.dl-ti-2 .dl-thread-item .t-subject .t-sub-tag,
    .dl-forum-tlist .dl-tl-2.dl-ti-2 .dl-thread-item .t-subject .t-title,
    .dl-forum-tlist .dl-tl-2.dl-ti-2 .dl-thread-item .t-subject > a {
        display: inline;
        float: none;
        flex: none;
        max-width: none;
        min-width: 0;
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
        vertical-align: baseline;
        -webkit-line-clamp: none;
    }

    .dl-forum-tlist .dl-tl-2.dl-ti-2 .dl-thread-item .t-subject .t-badge,
    .dl-forum-tlist .dl-tl-2.dl-ti-2 .dl-thread-item .t-subject .t-sub-tag {
        margin-right: 5px;
    }
}


/* ============================================================
   单行模式：整段（标签 + 标题）一行截断，与对齐方式无关
   ============================================================ */
.dl-forum-tlist .dl-tl-1 .dl-thread-item .t-subject {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    align-items: normal;
    gap: 0;
}

.dl-forum-tlist .dl-tl-1 .dl-thread-item .t-subject .t-badge,
.dl-forum-tlist .dl-tl-1 .dl-thread-item .t-subject .t-sub-tag,
.dl-forum-tlist .dl-tl-1 .dl-thread-item .t-subject .t-title,
.dl-forum-tlist .dl-tl-1 .dl-thread-item .t-subject > a {
    display: inline;
    flex: none;
    max-width: none;
    white-space: nowrap;
    overflow: visible;
    text-overflow: clip;
    vertical-align: baseline;
}

.dl-forum-tlist .dl-tl-1 .dl-thread-item .t-subject .t-badge,
.dl-forum-tlist .dl-tl-1 .dl-thread-item .t-subject .t-sub-tag {
    margin-right: 5px;
}

/* ============================================================
   移动端 · 堆叠卡片布局
   ------------------------------------------------------------
   ⚠️ 特异性说明（踩过的坑）
   header.php 的 <style id="dl-mobile-critical"> 内联块里有：
       .dl-thread-item .t-nums ... { display: none !important; }
       .dl-thread-item .t-author  { width: 90px !important; }
   内联 <style> 在外链 CSS 之后，同特异性 + 同 !important 时它赢，
   会把「回复/查看」摁死、把作者列锁在 90px 导致日期换行错位。

   所以这里统一用 .dl-forum-tlist 作用域把特异性抬到 (0,3,0)，
   稳压内联的 (0,2,0)，无需改动 header.php。
   ============================================================ */
@media (max-width: 768px) {

    .dl-forum-tlist .dl-thread-item {
        flex-wrap: wrap;
        align-items: flex-start;
        padding: 12px 12px;
        min-height: 0;
        row-gap: 5px;
    }

    .dl-forum-tlist .dl-tl-2 .dl-thread-item { min-height: 0; }

    /* 图标固定左上 */
    .dl-forum-tlist .dl-thread-item .t-icon {
        width: 18px;
        margin-right: 8px;
        margin-top: 2px;
        align-self: flex-start;
    }

    /* 标题吃满整行 */
    .dl-forum-tlist .dl-thread-item .t-subject {
        flex: 1 1 calc(100% - 26px);
        min-width: 0;
        padding-top: 0;
    }

    /* 字号作用在容器上，两种对齐方式都继承；截断由各自模式的规则负责 */
    .dl-forum-tlist .dl-tl-2 .dl-thread-item .t-subject {
        font-size: 14.5px;
        line-height: 1.45;
    }

    .dl-forum-tlist .dl-thread-item .t-subject .t-title,
    .dl-forum-tlist .dl-thread-item .t-subject > a,
    .dl-forum-tlist .dl-thread-item .t-subject .t-sub-tag {
        font-size: inherit;
        line-height: inherit;
    }

    .dl-forum-tlist .dl-thread-item .t-subject .t-sub-tag {
        font-size: 12px;
    }

    /* ── 元信息行：作者 + 日期 + 回复 + 查看，整行排开 ──
       关键：宽度必须解锁，否则日期会在 90px 处断成两行 */
    .dl-forum-tlist .dl-thread-item .t-author {
        order: 3;
        width: auto !important;
        max-width: none !important;
        flex: 0 0 auto;
        margin-left: 26px;
        padding-left: 0;
        text-align: left !important;
        font-size: 11.5px;
        color: var(--text-light);
        white-space: nowrap;
    }

    /* 作者名与日期同行，中间加分隔点 */
    .dl-forum-tlist .dl-thread-item .t-author cite,
    .dl-forum-tlist .dl-thread-item .t-author em {
        display: inline !important;
        font-size: 11.5px;
        white-space: nowrap;
    }

    .dl-forum-tlist .dl-thread-item .t-author em::before {
        content: "·";
        margin: 0 5px;
        opacity: .55;
    }

    /* ── 把「回复/查看」找回来 ── */
    .dl-forum-tlist .dl-thread-item .t-nums {
        display: inline-flex !important;
        align-items: center;
        gap: 10px;
        order: 4;
        width: auto !important;
        flex: 0 0 auto;
        margin-left: 10px;
        text-align: left;
        font-size: 11.5px;
        white-space: nowrap;
    }

    .dl-forum-tlist .dl-thread-item .t-nums span,
    .dl-forum-tlist .dl-thread-item .t-nums em {
        display: inline !important;
        font-size: 11.5px;
        font-weight: 400;
        color: var(--text-light);
    }

    .dl-forum-tlist .dl-thread-item .t-nums span::before { content: "回复 "; opacity: .75; }
    .dl-forum-tlist .dl-thread-item .t-nums em::before   { content: "查看 "; opacity: .75; }

    /* 「最后发表」与作者日期重复，手机上继续隐藏 */
    .dl-forum-tlist .dl-thread-item .t-lastpost,
    .dl-forum-tlist .dl-thread-header .th-lastpost { display: none !important; }

    /* 表头在堆叠布局下没有对应列，只留「主题」 */
    .dl-forum-tlist .dl-thread-header .th-author,
    .dl-forum-tlist .dl-thread-header .th-nums { display: none !important; }

    /* 徽章缩小，不抢标题宽度 */
    .dl-forum-tlist .dl-thread-item .t-subject .t-badge {
        font-size: 10.5px;
        padding: 0 5px;
    }
}

/* 极窄屏（小屏手机）再压一档，并允许元信息换行兜底 */
@media (max-width: 380px) {
    .dl-forum-tlist .dl-tl-2 .dl-thread-item .t-subject { font-size: 13.5px; }
    .dl-forum-tlist .dl-thread-item .t-subject .t-sub-tag { font-size: 11.5px; }

    .dl-forum-tlist .dl-thread-item .t-nums { margin-left: 8px; gap: 8px; }

    .dl-forum-tlist .dl-thread-item .t-author,
    .dl-forum-tlist .dl-thread-item .t-nums,
    .dl-forum-tlist .dl-thread-item .t-nums span,
    .dl-forum-tlist .dl-thread-item .t-nums em { font-size: 11px; }
}

/* 超窄或超长用户名时，允许元信息整体换行，也不会把日期拆断 */
@media (max-width: 340px) {
    .dl-forum-tlist .dl-thread-item .t-nums {
        margin-left: 26px;
        flex-basis: 100%;
    }
}

/* ============================================================
   文本型图标字段里的图片（用户组图标、入口图标等）
   ------------------------------------------------------------
   容器本来用 font-size 控制 emoji 大小（.gc-icon 40px、
   .uc-entry-icon 22px，且各有响应式覆盖）。
   图片用 1em 跟随，就能自动和 emoji 一样大、并继承所有响应式规则，
   不需要在任何地方写死 px —— 也就不会出现"传张高清图顶出一个大方块"。
   ============================================================ */
.dl-uicon {
    display: inline-block;
    width: 1em;
    height: 1em;
    object-fit: contain;
    vertical-align: middle;
    border-radius: 4px;
    flex-shrink: 0;
}

/* ============================================================
   网址导航卡片：悬停层跟随主题
   ------------------------------------------------------------
   原样式把颜色写死了：
       .dl-nav-item-hover { background: rgba(255,255,255,0.98); }
       .dl-nav-btn-go:hover { box-shadow: ... rgba(46,82,153,0.3) }   ← 旧写死蓝色，与紫色主色不搭
   暗色模式下悬停会闪出一块白，很跳。

   ⚠️ 这里不能按主题分别写死颜色 —— 模板有三套主题状态：
       :root（明） / [data-theme=dark]（暗） / [data-theme=dark].dl-eink（墨水屏，偏暖 #1c1b18）
   写死只会顾上其中两套。直接用 var(--bg-white) 才能全部自动跟随，
   包括以后再加的主题。原来的 0.98 透明度和全不透明肉眼无差别。
   ============================================================ */
.dl-nav-item-hover {
    background: var(--bg-white);
}

/* 「直达」按钮的投影原本是蓝色（rgba(46,82,153,.3)），与紫色主色不搭，
   改成中性投影，明暗两种底色下都自然 */
.dl-nav-btn-go:hover {
    box-shadow: 0 3px 10px rgba(0, 0, 0, .28);
}

/* 「详情」按钮保持中性灰实心：#666 在白底和近黑底上都能读，
   不动它可以少改一处、也不改变亮色模式的观感。
   只把悬停投影调得柔和些。 */
.dl-nav-btn-detail:hover {
    box-shadow: 0 3px 10px rgba(0, 0, 0, .28);
}
