/**
 * 资源卡片前端样式
 */

/* ========== 精简模式下隐藏主题残留元素 ========== */
body.zpb-simplified .user-card.zib-widget.author,
body.zpb-simplified .article-nav,
body.zpb-simplified .relates {
    display: none !important;
}

/* ========== 隐藏 ZIBLL 原生重复元素 ========== */
#posts-pay,
.pay-box.zib-widget.pay-box,
.muted-box.mb10 {
    display: none !important;
}

/* ZIBLL 原生 VIP 状态标签美化 */
.badg.c-red.btn-block {
    display: flex !important;
    align-items: center;
    gap: 8px;
    margin-bottom: 18px !important;
    padding: 12px 18px !important;
    background: linear-gradient(135deg, #fef9e7, #fdebd0) !important;
    border: 1px solid #f5c842 !important;
    border-radius: 10px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: #7d6608 !important;
    box-shadow: 0 2px 12px rgba(245,200,66,.2) !important;
}

.badg.c-red.btn-block b,
.badg.c-red.btn-block strong {
    color: #b8860b;
}
.dark-theme .badg.c-red.btn-block {
    background: linear-gradient(135deg, rgba(254,249,231,.12), rgba(253,235,208,.08)) !important;
    border-color: rgba(245,200,66,.25) !important;
    color: #f5c842 !important;
    box-shadow: 0 2px 12px rgba(245,200,66,.08) !important;
}
.dark-theme .badg.c-red.btn-block::before {
    color: #f5c842;
}

/* ========== 面包屑 ========== */
.zpb-breadcrumb {
    background: #fff;
    padding: 12px 18px;
    border-radius: 10px;
    margin-bottom: 18px;
    box-shadow: 0 2px 10px rgba(0,0,0,.06);
    font-size: 14px;
    color: #888;
}
.zpb-breadcrumb ol {
    list-style: none;
    padding: 0;
    margin: 0;
}
.zpb-breadcrumb li {
    display: inline;
}
.zpb-breadcrumb a {
    color: #666;
    text-decoration: none;
}
.zpb-breadcrumb a:hover {
    color: #ff6b6b;
}
.zpb-breadcrumb .sep {
    margin: 0 10px;
    color: #ccc;
}
.zpb-breadcrumb .cur {
    color: #333;
}

/* ========== 资源卡片主体 ========== */
.zpb-resource-card {
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0,0,0,.08);
    margin-bottom: 20px;
    overflow: hidden;
}

/* 资源头部信息区 */
.zpb-res-header {
    display: flex;
    gap: 22px;
    padding: 24px;
    align-items: center;
}

.zpb-res-cover {
    flex-shrink: 0;
    width: 130px;
    height: 180px;
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(0,0,0,.2);
    margin-top: 12px;
}
.zpb-res-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.zpb-format-badge {
    position: absolute;
    top: 8px;
    right: 8px;
    background: linear-gradient(135deg, #ff6b6b, #e55a5a);
    color: #fff;
    padding: 3px 10px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1px;
    border-radius: 4px;
    box-shadow: 0 2px 6px rgba(0,0,0,.15);
    z-index: 2;
}

.zpb-res-info {
    flex: 1;
    min-width: 0;
}

.zpb-title-main {
    font-size: 20px;
    font-weight: 700;
    color: #222;
    margin: 0 0 4px;
    line-height: 1.35;
    word-break: break-word;
}

.zpb-title-sub {
    font-size: 13px;
    color: #999;
    margin-bottom: 10px;
}

/* 标签区 —— 紧凑单行药丸标签 */
.zpb-res-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 12px;
    align-items: center;
}

.zpb-tag-item {
    display: inline-flex;
    align-items: center;
    padding: 4px 11px;
    border-radius: 15px;
    font-size: 12px;
    line-height: 1.4;
    text-decoration: none;
    transition: all .2s;
}
.zpb-tag-item i {
    margin-right: 4px;
    font-size: 11px;
}

.zpb-tag-cat {
    background: #f0f0f0;
    color: #666;
}
.zpb-tag-cat:hover {
    background: #ff6b6b;
    color: #fff;
}

.zpb-tag-vip {
    background: linear-gradient(135deg, #fff8e1, #ffecb3);
    color: #e65100;
}

.zpb-tag-oa {
    background: linear-gradient(135deg, #07c160, #06ad56);
    color: #fff;
}
/* 默认隐藏简短文字 */
.zpb-oa-short { display: none; }

.zpb-tag-disk {
    background: #e3f2fd;
    color: #1565c0;
}
.zpb-tag-disk.status-valid {
    background: #e3f2fd;
    color: #1565c0;
}

/* 资源元信息 —— 竖线分隔紧凑单行 */
.zpb-res-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;
    font-size: 13px;
    color: #888;
    padding-left: 2px;
    margin-top: 2px;
}

.zpb-meta-box {
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
}
.zpb-meta-box i {
    color: #bbb;
    font-size: 13px;
    margin-right: 4px;
}
.zpb-meta-box span {
    color: #aaa;
    margin-right: 3px;
}
.zpb-meta-box strong {
    color: #444;
    font-weight: 500;
}

/* 元数据竖线分隔符 */
.zpb-meta-box:not(:last-child)::after {
    content: '';
    display: inline-block;
    width: 1px;
    height: 12px;
    background: #ddd;
    margin: 0 12px;
    vertical-align: middle;
}

/* OA通知栏 —— 全宽显眼公告条 */
.zpb-oa-notice {
    margin-top: 12px;
    padding: 12px 16px;
    background: linear-gradient(135deg, #fffbeb, #fef3c7);
    border-radius: 8px;
    border-left: 3px solid #f59e0b;
    font-size: 13px;
    color: #92400e;
    line-height: 1.6;
}
.zpb-oa-notice i {
    color: #16a34a;
    margin-right: 6px;
}

/* ========== 下载区域 ========== */
.zpb-download-area {
    padding: 20px 28px 28px;
}

.zpb-download-wrapper {
    display: flex;
    gap: 20px;
    align-items: stretch;
}

/* 左侧：下载主体 */
.zpb-download-main {
    flex: 1;
    min-width: 0;
    padding: 24px;
    background: linear-gradient(180deg, #f8f9fb 0%, #f3f4f6 100%);
    border-radius: 12px;
    border: 1px solid #e8e8e8;
    position: relative;
    overflow: hidden;
}

.zpb-download-main::before {
    content: '赞助通道';
    position: absolute;
    top: 16px;
    right: -32px;
    width: 120px;
    padding: 4px 0;
    background: linear-gradient(135deg, #ff6b6b, #e53935);
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    text-align: center;
    transform: rotate(45deg);
    box-shadow: 0 2px 6px rgba(229,57,53,.3);
}

/* 下载状态标签 */
.zpb-dl-status {
    display: inline-flex;
    align-items: center;
    padding: 6px 14px;
    border-radius: 18px;
    font-size: 13px;
    font-weight: 500;
    margin-bottom: 16px;
}
.zpb-dl-status i {
    margin-right: 6px;
}
.zpb-status-unlocked {
    background: #d4edda;
    color: #155724;
}
.zpb-status-login {
    background: #fff3cd;
    color: #856404;
}
.zpb-status-support {
    background: #f8d7da;
    color: #721c24;
}

/* 下载信息行 */
.zpb-dl-info {
    margin-bottom: 18px;
}

.zpb-dl-row {
    display: flex;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px dashed #e0e0e0;
}
.zpb-dl-row:last-child {
    border-bottom: none;
}
.zpb-dl-row label {
    width: 70px;
    flex-shrink: 0;
    font-size: 13px;
    color: #666;
}
.zpb-dl-value {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    font-size: 14px;
}
.zpb-dl-value a {
    color: #ff6b6b;
    word-break: break-all;
}
.zpb-dl-value a:hover {
    text-decoration: underline;
}

/* VIP/已购买用户隐藏每日限额提示框 */
.zpb-can-download .muted-box { display: none !important; }

/* 提取码相关 */
.zpb-code-show {
    background: linear-gradient(135deg, #ff6b6b, #ff8a80);
    color: #fff;
    padding: 6px 16px;
    border-radius: 6px;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 3px;
    font-family: Consolas, Monaco, monospace;
    cursor: pointer;
    transition: all .2s;
}
.zpb-code-show:hover {
    transform: scale(1.05);
}
.zpb-code-show.copied {
    background: linear-gradient(135deg, #52c41a, #389e0d);
}

.zpb-code-hide {
    background: #eee;
    color: #999;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 13px;
}
.zpb-code-hide i {
    margin-right: 5px;
}

.zpb-row-locked {
    background: rgba(0,0,0,.02);
    margin: 0 -28px;
    padding: 12px 28px;
    border-radius: 0;
}

/* ========== 购买前提示区 ========== */
.zpb-support-tip {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 14px;
    font-size: 13px;
    line-height: 1.7;
    color: #666;
}
.zpb-support-tip p {
    margin: 0;
}
.zpb-support-tip strong {
    color: #333;
}
.zpb-support-tip em {
    color: #ff6b6b;
    font-style: normal;
    font-weight: 600;
}

/* 打赏价格卡片 - 单行显示 */
.zpb-support-price {
    display: flex;
    align-items: center;
    gap: 10px;
    background: linear-gradient(135deg, #fff5f5, #ffe8e8);
    border: 1px solid #ffcccc;
    border-radius: 10px;
    padding: 10px 16px;
}
.zpb-support-price-icon {
    width: 36px; height: 36px;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, #ff6b6b, #ee5a24);
    border-radius: 50%;
    font-size: 16px; color: #fff;
    flex-shrink: 0;
    box-shadow: 0 3px 10px rgba(238,90,36,.3);
}
.zpb-support-price-info {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px;
    font-size: 13px;
    color: #555;
}
.zpb-support-price-label {
    font-size: 13px;
    color: #c62828;
    font-weight: 600;
}
.zpb-support-price-value {
    font-size: 18px;
    font-weight: 800;
    color: #ff4400;
    background: linear-gradient(135deg, #ff4400, #ee5a24);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.zpb-support-price-desc {
    font-size: 12px;
    color: #888;
}

/* VIP权益卡片 */
.zpb-support-vip {
    background: linear-gradient(135deg, #fafbfc, #f0f2f5);
    border: 1px solid #e0e4e8;
    border-radius: 10px;
    padding: 12px 16px;
}
.zpb-support-vip-title {
    font-size: 12px; font-weight: 600; color: #333;
    margin-bottom: 4px;
}
.zpb-support-vip-title i { color: #ff6b6b; margin-right: 4px; }
.zpb-support-vip-desc {
    font-size: 11px; color: #888;
    margin-bottom: 10px;
}
.zpb-support-vip-tiers {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.zpb-vip-tier {
    flex: 1; min-width: 100px;
    background: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
    padding: 8px 12px;
    text-align: center;
    transition: all .2s;
}
.zpb-vip-tier:hover {
    border-color: #ff6b6b;
    box-shadow: 0 2px 8px rgba(255,107,107,.1);
}
.zpb-vip-tier-name {
    display: block;
    font-size: 12px; font-weight: 600; color: #333;
    margin-bottom: 2px;
}
.zpb-vip-tier-limit {
    font-size: 12px; color: #888;
}
.zpb-vip-tier-limit b {
    color: #ee5a24; font-weight: 700;
}

/* 购买前价格 */
.zpb-price-inline {
    margin-bottom: 10px;
}

/* ========== 操作按钮 ========== */
.zpb-dl-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: center;
}

.zpb-dl-actions > * {
    flex: 0 0 auto;
    min-width: 130px;
    box-sizing: border-box;
}

.zpb-action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 24px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border: none;
    text-decoration: none !important;
    transition: all .25s;
    min-width: 130px;
}
.zpb-action-btn i {
    margin-right: 8px;
}

.zpb-btn-login {
    background: linear-gradient(135deg, #1890ff, #096dd9);
    color: #fff;
}
.zpb-btn-login:hover {
    background: linear-gradient(135deg, #096dd9, #0050b3);
    color: #fff;
    transform: translateY(-2px);
}

.zpb-btn-reg {
    background: #fff;
    border: 2px solid #d9d9d9;
    color: #333;
}
.zpb-btn-reg:hover {
    border-color: #1890ff;
    color: #1890ff;
}

.zpb-btn-pay {
    background: linear-gradient(135deg, #1890ff, #096dd9);
    color: #fff;
    width: 140px;
    white-space: nowrap;
    box-sizing: border-box;
}
.zpb-btn-pay:hover {
    background: linear-gradient(135deg, #096dd9, #0050b3);
    color: #fff;
    transform: translateY(-2px);
}

.zpb-btn-vip {
    background: linear-gradient(135deg, #fa8c16, #d46b08);
    color: #fff;
    width: 140px;
    white-space: nowrap;
    box-sizing: border-box;
}
.zpb-btn-vip:hover {
    background: linear-gradient(135deg, #d46b08, #ad4e00);
    color: #fff;
    transform: translateY(-2px);
}

/* ========== 右侧：二维码面板 ========== */
.zpb-qrcode-panel {
    flex-shrink: 0;
    width: 200px;
    background: linear-gradient(180deg, #f8f9fb 0%, #f3f4f6 100%);
    border: 1px solid #e8e8e8;
    border-radius: 12px;
    padding: 20px 16px;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.zpb-qrcode-panel::before {
    content: '免费通道';
    position: absolute;
    top: 16px;
    right: -32px;
    width: 120px;
    padding: 4px 0;
    background: linear-gradient(135deg, #22c55e, #16a34a);
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    text-align: center;
    transform: rotate(45deg);
    box-shadow: 0 2px 6px rgba(22,163,74,.3);
}

.zpb-qr-inner {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.zpb-qr-title {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 6px 14px;
    background: #d4edda;
    color: #155724;
    font-size: 13px;
    font-weight: 500;
    border-radius: 18px;
    margin-bottom: 16px;
}
.zpb-qr-title i {
    font-size: 14px;
    color: #22c55e;
}

.zpb-qr-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    width: 100%;
}

.zpb-qr-image {
    width: 120px;
    height: 120px;
    background: #fff;
    border-radius: 8px;
    padding: 5px;
    box-shadow: 0 2px 8px rgba(0,0,0,.06);
    border: 1px solid #eee;
    margin-bottom: 12px;
}
.zpb-qr-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 4px;
}

.zpb-qr-tip {
    font-size: 13px;
    color: #666;
    line-height: 1.8;
    text-align: center;
    word-break: break-all;
}
.zpb-qr-tip em {
    font-style: normal;
    font-weight: 700;
    color: #22c55e;
    font-size: 15px;
}

.zpb-qr-code-hint {
    margin-top: 10px;
    padding: 8px 0;
    font-size: 14px;
    color: #333;
    text-align: center;
    word-break: break-all;
    border-top: 1px dashed #e0e0e0;
}
.zpb-qr-code-hint em {
    font-style: normal;
    font-weight: 800;
    color: #ee5a24;
    font-size: 18px;
    letter-spacing: 2px;
}

.zpb-qr-mobile-tip {
    display: none;
}

/* ========== 版权提示 ========== */
.zpb-copyright-notice {
    text-align: center;
    padding: 12px 20px;
    font-size: 12px;
    color: #999;
    margin-top: 16px;
}
.zpb-copyright-notice i {
    margin-right: 5px;
    color: #faad14;
}

/* ========== 下载区单独适配 ZIBLL 原生按钮 ========== */
.zpb-code-area .but-download {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
}
.zpb-code-area .but-download > .but,
.zpb-code-area .but-download > span {
    min-width: 160px;
    padding: .5em 1.2em;
    margin-top: 0;
}
.zpb-code-area .but-download > span {
    display: none;
}

/* ========== 文件列表卡片 ========== */
.zpb-card {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 15px rgba(0,0,0,.08);
    margin-bottom: 20px;
    overflow: hidden;
}

.zpb-files-card {
    border: none;
    box-shadow: 0 1px 4px rgba(0,0,0,.08);
}
.zpb-files-card .zpb-section {
    padding: 0;
}

.zpb-files-header {
    padding: 12px 30px;
    border-bottom: 1px solid #f0f0f0;
    background: #fafbfc;
}

.zpb-files-title {
    display: flex;
    align-items: center;
    font-size: 14px;
    font-weight: 500;
    color: #333;
}
.zpb-files-title i {
    color: #ffc107;
    font-size: 16px;
    margin-right: 8px;
}
.zpb-files-title .zpb-files-count {
    margin-left: 10px;
    font-size: 11px;
    font-weight: normal;
    color: #999;
    background: #f0f0f0;
    padding: 2px 8px;
    border-radius: 10px;
}

.zpb-files-list {
    max-height: 280px;
    overflow-y: auto;
}

.zpb-file-row {
    display: flex;
    align-items: center;
    padding: 8px 30px;
    border-bottom: 1px solid #f5f5f5;
    transition: background .15s;
    cursor: default;
}
.zpb-file-row:last-child {
    border-bottom: none;
}
.zpb-file-row:hover {
    background: #f8fafc;
}

.zpb-file-icon {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #ff6b6b 0%, #ee5a5a 100%);
    border-radius: 4px;
    margin-right: 12px;
    flex-shrink: 0;
}
.zpb-file-icon i {
    color: #fff;
    font-size: 14px;
}

.zpb-file-info {
    flex: 1;
    min-width: 0;
    overflow: hidden;
}

.zpb-file-name {
    font-size: 13px;
    color: #333;
    line-height: 1.4;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.zpb-file-ext {
    font-size: 10px;
    color: #999;
    background: #f0f0f0;
    padding: 2px 6px;
    border-radius: 3px;
    margin-left: 10px;
    flex-shrink: 0;
}

.zpb-files-footer {
    padding: 10px 30px;
    background: #fafbfc;
    border-top: 1px solid #f0f0f0;
    font-size: 12px;
    color: #888;
}
.zpb-files-footer i {
    color: #06a7ff;
    margin-right: 6px;
}

/* ========== 内容概述卡片 ========== */
.zpb-overview-card .zpb-section {
    padding: 25px 30px;
    background: linear-gradient(135deg, #fffdf7, #fff9e6);
    border-left: 4px solid #f5c842;
}
.zpb-overview-text {
    color: #555;
    line-height: 2;
    font-size: 14px;
}
.dark-theme .zpb-overview-card .zpb-section {
    background: linear-gradient(135deg, rgba(254,249,231,.08), rgba(253,235,208,.05));
    border-left-color: rgba(245,200,66,.4);
}
.dark-theme .zpb-overview-text {
    color: #cfcfcf;
}

/* ========== 资源简介卡片 ========== */
.zpb-desc-card .zpb-section {
    padding: 25px 30px;
}

.zpb-section-head {
    font-size: 16px;
    font-weight: 600;
    color: #333;
    margin: 0 0 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid #eee;
    display: flex;
    align-items: center;
}
.zpb-section-head i {
    margin-right: 10px;
    color: #ff6b6b;
}

.zpb-desc-text {
    color: #555;
    line-height: 2;
    font-size: 14px;
}

/* ========== 移动端适配 ========== */
@media (max-width: 768px) {
    .zpb-res-header {
        flex-direction: column;
        align-items: center;
        text-align: center;
        padding: 20px;
        gap: 14px;
    }

    .zpb-res-cover {
        width: 120px;
        height: 156px;
    }

    .zpb-title-main {
        font-size: 17px;
        white-space: normal;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    .zpb-res-tags {
        justify-content: center;
        gap: 6px;
        margin-bottom: 10px;
    }
    .zpb-tag-item {
        padding: 3px 9px;
        font-size: 11px;
    }
    /* 移动端：公众号标签显示简短文字 */
    .zpb-oa-full { display: none; }
    .zpb-oa-short { display: inline; }

    .zpb-res-meta {
        justify-content: center;
        gap: 8px !important;
        flex-wrap: wrap;
        font-size: 12px;
    }

    /* 移动端隐藏竖线分隔符 */
    .zpb-meta-box::after {
        display: none !important;
    }

    .zpb-meta-box {
        font-size: 12px;
        white-space: nowrap;
    }

    .zpb-oa-notice {
        font-size: 12px;
        padding: 8px 12px;
        text-align: center;
    }

    .zpb-download-area {
        padding: 16px;
    }

    .zpb-download-wrapper {
        flex-direction: column;
        gap: 16px;
    }

    .zpb-download-main {
        padding: 20px;
        padding-top: 28px;
    }
    .zpb-download-main::before {
        top: 12px;
        right: -35px;
        font-size: 11px;
    }

    .zpb-dl-row {
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
        padding: 10px 0;
    }
    .zpb-dl-row label {
        width: auto;
        font-size: 12px;
        color: #999;
    }
    /* 已购买时按钮区居中对齐 — 用通用选择器覆盖ZIBLL原生输出 */
    .zpb-code-area {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        gap: 10px;
        padding: 8px 0 4px;
    }
    /* 覆盖ZIBLL下载区域内的所有直接子元素 */
    .zpb-code-area > div,
    .zpb-code-area > a,
    .zpb-code-area > span,
    .zpb-code-area > p {
        display: block !important;
        width: auto !important;
        max-width: 260px !important;
        box-sizing: border-box !important;
        margin: 0 auto !important;
        text-align: center !important;
    }
    /* 确保内部链接/按钮也居中 */
    .zpb-code-area a {
        display: inline-block !important;
        text-align: center !important;
    }
    .zpb-code-area a.but,
    .zpb-code-area .but,
    .zpb-code-area [class*="but"] {
        display: block !important;
        width: 100% !important;
        max-width: 240px !important;
        margin: 0 auto !important;
    }

    .zpb-row-locked {
        margin: 0 -20px;
        padding: 12px 20px;
    }

    .zpb-dl-actions {
        flex-direction: column;
        gap: 8px;
    }
    .zpb-action-btn,
    .zpb-dl-actions .cashier-link {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        padding: 10px 16px !important;
        border-radius: 8px !important;
        font-size: 14px !important;
        font-weight: 500 !important;
        line-height: 1.4 !important;
        text-align: center !important;
        box-sizing: border-box !important;
    }
    .zpb-action-btn i,
    .zpb-dl-actions .cashier-link i {
        margin-right: 6px !important;
        font-size: 14px !important;
    }

    .zpb-qrcode-panel {
        width: 100%;
        padding: 16px;
        padding-top: 28px;
    }
    .zpb-qrcode-panel::before {
        top: 12px;
        right: -35px;
        font-size: 11px;
    }

    .zpb-qr-inner {
        width: 100%;
    }
    .zpb-qr-title {
        margin-bottom: 14px;
        text-align: center;
    }

    /* 移动端：二维码在上，文字在下，居中排列 */
    .zpb-qr-content {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        gap: 12px;
        text-align: center !important;
    }
    .zpb-qr-image {
        width: 100px !important;
        height: 100px !important;
        margin-bottom: 0 !important;
        flex-shrink: unset !important;
    }
    .zpb-qr-tip {
        font-size: 13px !important;
        line-height: 2 !important;
        color: #555;
        width: 100% !important;
    }
    /* 移动端显示简短提示，隐藏桌面端重复文本 */
    .zpb-qr-mobile-tip {
        display: inline !important;
    }
    .zpb-qr-desktop-tip {
        display: none !important;
    }

    /* 发送ID获取提取码 — 独立醒目行 */
    .zpb-qr-code-hint {
        margin-top: 8px !important;
        padding: 10px 16px !important;
        font-size: 13.5px !important;
        background: rgba(238,90,36,.06);
        border-radius: 8px;
        text-align: center !important;
        border: 1px dashed rgba(238,90,36,.25);
        width: 100% !important;
        box-sizing: border-box;
    }

    .zpb-copyright-notice {
        margin-top: 12px;
    }

    .zpb-files-header {
        padding: 10px 20px;
    }
    .zpb-files-title {
        font-size: 13px;
    }
    .zpb-files-title i {
        font-size: 14px;
        margin-right: 6px;
    }
    .zpb-files-title .zpb-files-count {
        font-size: 10px;
        padding: 2px 6px;
    }
    .zpb-files-list {
        max-height: 220px;
    }
    .zpb-file-row {
        padding: 6px 20px;
    }
    .zpb-file-icon {
        width: 28px;
        height: 28px;
        margin-right: 10px;
    }
    .zpb-file-icon i {
        font-size: 12px;
    }
    .zpb-file-name {
        font-size: 12px;
    }
    .zpb-file-ext {
        font-size: 9px;
        padding: 1px 5px;
        margin-left: 6px;
    }
    .zpb-files-footer {
        padding: 8px 20px;
        font-size: 11px;
    }

    .zpb-desc-card .zpb-section {
        padding: 20px;
    }
    .zpb-overview-card .zpb-section {
        padding: 20px;
    }

    .zpb-section-head {
        font-size: 15px;
    }
}

@media (max-width: 480px) {
    .zpb-file-ext {
        display: none;
    }
    .zpb-file-name {
        white-space: normal;
        -webkit-line-clamp: 2;
        display: -webkit-box;
        -webkit-box-orient: vertical;
    }
}

/* ========== 夜间模式 ========== */
.dark-theme .zpb-breadcrumb {
    background: #2f3136;
    color: #bbb;
    box-shadow: none;
    border: 1px solid rgba(255,255,255,.08);
}
.dark-theme .zpb-breadcrumb a {
    color: #ccc;
}
.dark-theme .zpb-breadcrumb .sep {
    color: #777;
}
.dark-theme .zpb-breadcrumb .cur {
    color: #eee;
}

.dark-theme .zpb-resource-card {
    background: #2b2f33;
    box-shadow: none;
    border: 1px solid rgba(255,255,255,.08);
}
.dark-theme .zpb-title-main {
    color: #eee;
}
.dark-theme .zpb-title-sub {
    color: #888;
}
.dark-theme .zpb-tag-cat {
    background: rgba(255,255,255,.08);
    color: #ccc;
}
.dark-theme .zpb-tag-vip {
    background: rgba(255,152,0,.15);
    color: #ffcc80;
}
.dark-theme .zpb-tag-disk {
    background: rgba(21,101,192,.15);
    color: #90caf9;
}
.dark-theme .zpb-tag-oa {
    background: linear-gradient(135deg, #07c160, #06ad56);
    color: #fff;
}
.dark-theme .zpb-oa-notice {
    background: rgba(254,243,199,.1);
    color: #fcd34d;
}
.dark-theme .zpb-oa-notice i {
    color: #4ade80;
}
.dark-theme .zpb-meta-box {
    color: #aaa;
}
.dark-theme .zpb-meta-box strong {
    color: #ddd;
}
.dark-theme .zpb-download-main {
    background: linear-gradient(180deg, #24282c 0%, #1f2225 100%);
    border-color: rgba(255,255,255,.1);
}
.dark-theme .zpb-dl-row {
    border-bottom-color: rgba(255,255,255,.1);
}
.dark-theme .zpb-dl-row label {
    color: #aaa;
}
.dark-theme .zpb-dl-value a {
    color: var(--theme-color, #ff6b95);
}
.dark-theme .zpb-code-hide {
    background: rgba(255,255,255,.1);
    color: #aaa;
}
.dark-theme .zpb-row-locked {
    background: rgba(255,255,255,.03);
}
.dark-theme .zpb-support-tip {
    background: rgba(255,251,240,.08);
    color: #bbb;
}
.dark-theme .zpb-support-tip strong {
    color: #ddd;
}
.dark-theme .zpb-support-price {
    background: linear-gradient(135deg, rgba(255,107,107,.12), rgba(238,90,36,.08));
    border-color: rgba(255,107,107,.2);
}
.dark-theme .zpb-support-price-label { color: #ff8a80; }
.dark-theme .zpb-support-price-value {
    background: linear-gradient(135deg, #ff7043, #ff8a65);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.dark-theme .zpb-support-price-desc { color: #999; }
.dark-theme .zpb-support-vip {
    background: linear-gradient(135deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
    border-color: rgba(255,255,255,.08);
}
.dark-theme .zpb-support-vip-title { color: #ddd; }
.dark-theme .zpb-support-vip-desc { color: #999; }
.dark-theme .zpb-vip-tier {
    background: rgba(255,255,255,.04);
    border-color: rgba(255,255,255,.08);
}
.dark-theme .zpb-vip-tier-name { color: #ddd; }
.dark-theme .zpb-vip-tier-limit { color: #999; }
.dark-theme .zpb-vip-tier-limit b { color: #ff7043; }
.dark-theme .zpb-qrcode-panel {
    background: linear-gradient(180deg, #24282c 0%, #1f2225 100%);
    border-color: rgba(255,255,255,.1);
}
.dark-theme .zpb-qr-title {
    background: rgba(212,237,218,.15);
    color: #a3cfbb;
}
.dark-theme .zpb-qr-title i {
    color: #4ade80;
}
.dark-theme .zpb-qr-image {
    background: #2b2f33;
    border-color: rgba(255,255,255,.1);
}
.dark-theme .zpb-qr-tip {
    color: #aaa;
}
.dark-theme .zpb-qr-tip em {
    color: #4ade80;
}
.dark-theme .zpb-qr-code-hint {
    color: #ddd;
    border-top-color: rgba(255,255,255,.1);
}
.dark-theme .zpb-qr-code-hint em {
    color: #ff7043;
}
.dark-theme .zpb-copyright-notice {
    color: #777;
}
.dark-theme .zpb-card {
    background: #2b2f33;
    border: 1px solid rgba(255,255,255,.08);
    box-shadow: none;
}
.dark-theme .zpb-files-header {
    background: #252525;
    border-bottom-color: #333;
}
.dark-theme .zpb-files-title {
    color: #eee;
}
.dark-theme .zpb-files-title .zpb-files-count {
    background: #333;
    color: #aaa;
}
.dark-theme .zpb-file-row {
    border-bottom-color: #2a2a2a;
}
.dark-theme .zpb-file-row:hover {
    background: #252525;
}
.dark-theme .zpb-file-name {
    color: #ddd;
}
.dark-theme .zpb-file-ext {
    background: #333;
    color: #aaa;
}
.dark-theme .zpb-files-footer {
    background: #252525;
    border-top-color: #333;
    color: #888;
}
.dark-theme .zpb-section-head {
    color: #eee;
    border-bottom-color: rgba(255,255,255,.12);
}
.dark-theme .zpb-section-head i {
    color: var(--theme-color, #ff5b95);
}
.dark-theme .zpb-desc-text {
    color: #cfcfcf;
}

/* ========== 分类页夜间模式补充 ========== */
/* 注意：.dark-theme 和 body.zpb-cat-page 同时在 <body> 上，
   必须用 body.dark-theme.zpb-cat-page（AND 关系），
   不能用 .dark-theme body（祖先关系，会匹配失败） */

/* ── 1. 分类头部 ── */
body.dark-theme.zpb-cat-page .zpb-header .box-title {
    color: #eee;
}
body.dark-theme.zpb-cat-page .zpb-header .box-title i {
    color: var(--theme-color, #ff5b95);
}
body.dark-theme.zpb-cat-page .zpb-header p.muted-color {
    color: #aaa;
}

/* ── 2. Widget 容器（分类导航 / 子分类 / 资源列表 外框） ── */
body.dark-theme.zpb-cat-page .zib-widget.box-body.zpb-categories,
body.dark-theme.zpb-cat-page .zib-widget.box-body.zpb-resource-list {
    background: #23262b !important;
    box-shadow: none !important;
    border: 1px solid rgba(255,255,255,.06) !important;
}

/* ── 3. Widget 标题栏 ── */
body.dark-theme.zpb-cat-page .title-theme {
    color: #eee;
    border-bottom-color: rgba(255,255,255,.08);
}
body.dark-theme.zpb-cat-page .title-theme i {
    color: var(--theme-color, #ff5b95);
}

/* ── 4. 资源卡片主体（最关键：白底 → 深色底） ── */
body.dark-theme.zpb-cat-page .zpb-resource-list .zpb-cat-card {
    background: #2d3136 !important;
    box-shadow: 0 2px 12px rgba(0,0,0,.25) !important;
    border: 1px solid rgba(255,255,255,.06) !important;
}
body.dark-theme.zpb-cat-page .zpb-resource-list .zpb-cat-card:hover {
    box-shadow: 0 10px 30px rgba(0,0,0,.4) !important;
    border-color: rgba(255,107,107,.2) !important;
}
body.dark-theme.zpb-cat-page .zpb-resource-list .zpb-cat-cover-wrap {
    box-shadow: 0 4px 16px rgba(0,0,0,.35);
}

/* ── 5. 卡片文字 ── */
body.dark-theme.zpb-cat-page .zpb-resource-list .item-heading a {
    color: #eee !important;
}
body.dark-theme.zpb-cat-page .zpb-resource-list .item-heading a:hover {
    color: var(--theme-color, #ff6b95) !important;
}
body.dark-theme.zpb-cat-page .zpb-resource-list .item-excerpt {
    color: #aaa !important;
}

/* ── 6. 卡片元信息（底部一行） ── */
body.dark-theme.zpb-cat-page .zpb-resource-list .item-meta,
body.dark-theme.zpb-cat-page .zpb-resource-list .item-meta item,
body.dark-theme.zpb-cat-page .zpb-resource-list .meta-right item {
    color: #888 !important;
}
body.dark-theme.zpb-cat-page .zpb-resource-list .item-meta i {
    color: #777;
}

/* ── 7. 卡片内标签（分类标签、VIP标签等） ── */
body.dark-theme.zpb-cat-page .zpb-resource-list .item-tags .zpb-tag-item.zpb-tag-cat {
    background: rgba(255,255,255,.08) !important;
    color: #ccc !important;
}
body.dark-theme.zpb-cat-page .zpb-resource-list .item-tags .zpb-tag-item.zpb-tag-vip {
    background: rgba(255,152,0,.15) !important;
    color: #ffcc80 !important;
}

/* ── 8. 卡片内状态提示区域 ── */
body.dark-theme.zpb-cat-page .zpb-resource-list .zpb-status-login {
    background: rgba(255,200,50,.12) !important;
    color: #fdd835 !important;
}
body.dark-theme.zpb-cat-page .zpb-resource-list .zpb-status-support {
    background: rgba(255,100,100,.12) !important;
    color: #ff8a80 !important;
}
body.dark-theme.zpb-cat-page .zpb-resource-list .zpb-status-unlocked {
    background: rgba(100,220,130,.12) !important;
    color: #69f0ae !important;
}

/* ── 9. 操作按钮区 ── */
body.dark-theme.zpb-cat-page .zpb-resource-list .zpb-btn-reg {
    background: transparent !important;
    border-color: rgba(255,255,255,.18) !important;
    color: #ccc !important;
}
body.dark-theme.zpb-cat-page .zpb-resource-list .zpb-btn-reg:hover {
    border-color: var(--theme-color, #ff6b95) !important;
    color: var(--theme-color, #ff6b95) !important;
}
body.dark-theme.zpb-cat-page .zpb-resource-list .zpb-dl-actions {
    border-top-color: rgba(255,255,255,.06) !important;
}
body.dark-theme.zpb-cat-page .zpb-resource-list .zpb-qr-tip {
    color: #999 !important;
}
body.dark-theme.zpb-cat-page .zpb-resource-list .zpb-qr-code-hint {
    color: #888 !important;
    border-top-color: rgba(255,255,255,.08) !important;
}

/* ── 10. 空状态 ── */
body.dark-theme .zpb-cat-empty {
    color: #999;
    background: transparent;
}

/* ========== ZIBLL 下载按钮在 code-area 中的适配 ========== */
.zpb-code-area {
    padding: 8px 0;
}
.zpb-code-area > .but-download {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.zpb-code-area > .but-download > .but {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 18px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    min-width: 140px;
    text-decoration: none;
}
.zpb-code-area > .but-download > span {
    display: none;
}

/* ============================================================
 * 书籍网格卡片 [zpb_resource_grid]
 * 横向卡片：左侧封面 | 右侧书名+大小+下载量
 * ============================================================ */

/* 网格容器 */
.zpb-book-grid {
    display: grid;
    grid-template-columns: repeat(var(--zpb-cols, 3), 1fr);
    gap: 12px;
    padding: 4px 0;
    padding-top: 8px;
}

/* 首页小工具标题紧贴网格，减小间距 */
.zib-widget > .title-theme {
    margin-top: 0;
    margin-bottom: 10px;
}

/* 空状态 */
.zpb-empty-grid {
    padding: 40px 20px;
    font-size: 14px;
    border-radius: 12px;
    background: rgba(0,0,0,.02);
}

/* 单个书籍卡片 — 横向布局：左封面 + 右信息 */
.zpb-book-item {
    display: flex;
    align-items: center;
    gap: 20px;
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0,0,0,.08);
    transition: all .25s ease;
    text-decoration: none !important;
    color: inherit;
    cursor: pointer;
    position: relative;
    padding: 12px 16px 12px 12px;
}

.zpb-book-item:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 30px rgba(0,0,0,.14);
}

/* 书籍卡片夜间模式 */
.dark-theme .zpb-book-item {
    background: #2d3136 !important;
    box-shadow: 0 2px 10px rgba(0,0,0,.25) !important;
}
.dark-theme .zpb-book-item:hover {
    box-shadow: 0 10px 30px rgba(0,0,0,.4) !important;
}

.zpb-book-item:active {
    transform: translateY(-1px);
}

/* 封面容器 — 竖版书籍比例，放大突出 */
.zpb-book-cover-wrap {
    position: relative;
    flex-shrink: 0;
    width: 100px;
    height: 136px;
    border-radius: 6px;
    overflow: hidden;
    background: #f0f0f0;
    box-shadow: 0 4px 14px rgba(0,0,0,.18);
}

.zpb-book-cover {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
}

.zpb-book-item:hover .zpb-book-cover {
    transform: scale(1.06);
}

/* 无封面占位符 */
.zpb-book-cover-placeholder {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #e0e0e0, #cfcfcf);
    color: #999;
    font-size: 32px;
}

/* 格式角标 — 封面右上角 */
.zpb-book-format-badge {
    position: absolute;
    top: 4px; right: 4px;
    background: rgba(255,107,107,.92);
    color: #fff;
    padding: 2px 8px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .4px;
    border-radius: 3px;
    z-index: 2;
    pointer-events: none;
}

/* 书籍信息区 — 右侧文字 */
.zpb-book-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* 书名 — 大字号醒目 */
.zpb-book-name {
    font-size: 18px;
    font-weight: 600;
    color: #222;
    margin: 0;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-word;
}

/* 副标题 */
.zpb-book-subtitle {
    font-size: 13px;
    color: #999;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* 元数据行：大小 + 下载量 */
.zpb-book-meta {
    display: flex;
    align-items: center;
    gap: 18px;
    font-size: 15px;
    color: #999;
}

.zpb-book-meta span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.zpb-book-meta i {
    font-size: 14px;
    color: #bbb;
}

/* ── 响应式：平板 ── */
@media (max-width: 1024px) {
    .zpb-book-grid {
        --zpb-cols: 3 !important;
        gap: 10px;
    }
    .zpb-book-cover-wrap {
        width: 90px;
        height: 124px;
    }
    .zpb-book-item {
        gap: 16px;
        padding: 10px 12px 10px 10px;
    }
    .zpb-book-name {
        font-size: 16px;
    }
    .zpb-book-meta {
        font-size: 13px;
        gap: 14px;
    }
}

/* ── 响应式：手机横屏 ── */
@media (max-width: 768px) {
    .zpb-book-grid {
        --zpb-cols: 2 !important;
        gap: 10px;
    }
    .zpb-book-cover-wrap {
        width: 80px;
        height: 110px;
    }
    .zpb-book-item {
        gap: 14px;
        padding: 10px;
    }
    .zpb-book-name {
        font-size: 15px;
    }
    .zpb-book-meta {
        font-size: 13px;
        gap: 14px;
    }
    .zpb-book-format-badge {
        font-size: 10px;
        padding: 2px 6px;
    }
}

/* ── 响应式：手机竖屏 ── */
@media (max-width: 480px) {
    .zpb-book-grid {
        --zpb-cols: 1 !important;
        gap: 10px;
    }
    .zpb-book-cover-wrap {
        width: 72px;
        height: 100px;
    }
    .zpb-book-item {
        gap: 14px;
        padding: 10px;
    }
    .zpb-book-name {
        font-size: 14px;
    }
    .zpb-book-format-badge {
        font-size: 9px;
        padding: 1px 5px;
    }
    .zpb-book-meta {
        font-size: 12px;
        gap: 12px;
    }
}

/* ========== 夜间模式：书籍网格 ========== */
.dark-theme .zpb-book-item {
    background: #2b2f33;
    box-shadow: 0 2px 10px rgba(0,0,0,.22);
}
.dark-theme .zpb-book-item:hover {
    box-shadow: 0 10px 30px rgba(0,0,0,.38);
}
.dark-theme .zpb-book-cover-wrap {
    background: #1f2225;
}
.dark-theme .zpb-book-cover-placeholder {
    background: linear-gradient(135deg, #2d3035, #24272a);
    color: #555;
}
.dark-theme .zpb-book-name {
    color: #e0e0e0;
}
.dark-theme .zpb-book-subtitle {
    color: #777;
}
.dark-theme .zpb-book-meta {
    color: #888;
}
.dark-theme .zpb-book-meta i {
    color: #666;
}
.dark-theme .zpb-empty-grid {
    background: rgba(255,255,255,.03);
    color: #888;
}

/* ============================================================
 * 分类页增强 (body.zpb-cat-page) —— 列表式布局
 * 模板：templates/category-zpb.php
 * 使用 category_template 钩子覆写，安全无白屏风险
 * ============================================================ */

/* --- 分类页整体布局：内容区占满可用宽度 --- */
body.zpb-cat-page .content-layout {
    display: block;
    max-width: 100%;
}
body.zpb-cat-page .content-wrap {
    max-width: 100%;
}
body.zpb-cat-page .content-layout > .zib-widget {
    width: 100%;
    max-width: 100%;
    padding: 14px 16px;
}

/* --- 隐藏 ZIBLL 主题原始分类内容（当插件模板生效时） --- */
body.zpb-cat-page .term-bar,
body.zpb-cat-page .main-wrap > .container > .content-wrap,
body.zpb-cat-page #content {
    /* 插件模板已有自己的 content-wrap，隐藏主题原生的 */
}

/* --- 面包屑紧凑 --- */
body.zpb-cat-page .zpb-breadcrumb {
    padding: 8px 14px;
    margin-bottom: 12px;
    font-size: 13px;
}

/* --- 分类头部居中 + 紧凑 --- */
body.zpb-cat-page .zpb-header {
    text-align: center;
    padding: 16px 16px;
}
body.zpb-cat-page .zpb-header .box-title {
    justify-content: center;
    font-size: 18px;
    margin-bottom: 4px;
}
body.zpb-cat-page .zpb-header p.muted-color {
    justify-content: center;
    font-size: 13px;
    margin-top: 0;
}

/* --- 分类导航网格 --- */
.zpb-category-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.zpb-category-item {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 5px 14px;
    border-radius: 16px;
    background: #f5f5f5;
    color: #666;
    font-size: 13px;
    text-decoration: none !important;
    transition: all .2s;
}
.zpb-category-item:hover {
    background: #ffe8e8;
    color: #c62828;
}
.zpb-category-item.active {
    background: linear-gradient(135deg, #ff6b6b, #ee5a24);
    color: #fff;
    font-weight: 600;
}
.zpb-category-item .count {
    font-size: 12px;
    opacity: .7;
}
.dark-theme .zpb-category-item {
    background: #2d3035;
    color: #aaa;
}
.dark-theme .zpb-category-item:hover {
    background: #3a2020;
    color: #ff8a80;
}
.dark-theme .zpb-category-item.active {
    background: linear-gradient(135deg, #c62828, #bf360c);
}

/* --- 资源列表容器：卡片式列表项（与首页同款交互，独立选择器互不干扰） --- */
body.zpb-cat-page .zpb-resource-list {
    width: 100%;
}

/* 卡片主体 */
body.zpb-cat-page .zpb-resource-list .zpb-cat-card {
    display: flex;
    align-items: flex-start;
    width: 100%;
    background: #fff;
    border-radius: 12px;
    padding: 18px 18px 18px 14px;
    margin-bottom: 14px;
    box-shadow: 0 2px 12px rgba(0,0,0,.06);
    border: 1px solid rgba(0,0,0,.04);
    transition: all .28s cubic-bezier(.25,.46,.45,.94);
    box-sizing: border-box;
}
body.zpb-cat-page .zpb-resource-list .zpb-cat-card:last-child {
    margin-bottom: 0;
}

/* 卡片 hover 浮动效果 */
body.zpb-cat-page .zpb-resource-list .zpb-cat-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(0,0,0,.12);
    border-color: rgba(255,107,107,.2);
}
body.zpb-cat-page .zpb-resource-list .zpb-cat-card:active {
    transform: translateY(-1px);
    box-shadow: 0 4px 16px rgba(0,0,0,.1);
}

/* 封面容器：带阴影 + overflow 裁剪 */
body.zpb-cat-page .zpb-resource-list .zpb-cat-cover-wrap {
    position: relative;
    flex-shrink: 0;
    margin-right: 18px;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(0,0,0,.14);
    line-height: 0;
}
body.zpb-cat-page .zpb-resource-list .zpb-cat-cover-wrap a {
    display: block;
    position: relative;
}
body.zpb-cat-page .zpb-resource-list .zpb-cat-cover-wrap img {
    object-fit: cover;
    width: 100px;
    height: 130px;
    display: block;
    transition: transform .4s ease;
}

/* 封面 hover 放大 */
body.zpb-cat-page .zpb-resource-list .zpb-cat-card:hover .zpb-cat-cover-wrap img {
    transform: scale(1.08);
}

/* item-body 撑满剩余空间 */
body.zpb-cat-page .zpb-resource-list .item-body {
    flex: 1 !important;
    min-width: 0;
    width: 100%;
    overflow: hidden;
}

/* 标题 + 摘要撑满 */
body.zpb-cat-page .zpb-resource-list .item-heading {
    width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}
body.zpb-cat-page .zpb-resource-list .item-heading a {
    width: 100%;
    word-break: break-word;
    overflow-wrap: break-word;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
body.zpb-cat-page .zpb-resource-list .item-excerpt {
    width: 100%;
    max-width: 100%;
    word-break: break-word;
    overflow-wrap: break-word;
}

/* --- 夜间模式：卡片（同一 body 上 .dark-theme 和 .zpb-cat-page 并存） --- */
body.dark-theme.zpb-cat-page .zpb-resource-list .zpb-cat-card {
    background: #2d3136 !important;
    box-shadow: 0 2px 12px rgba(0,0,0,.25) !important;
    border-color: rgba(255,255,255,.06) !important;
}
body.dark-theme.zpb-cat-page .zpb-resource-list .zpb-cat-card:hover {
    box-shadow: 0 12px 32px rgba(0,0,0,.4) !important;
    border-color: rgba(255,107,107,.25) !important;
}
body.dark-theme.zpb-cat-page .zpb-resource-list .zpb-cat-cover-wrap {
    box-shadow: 0 4px 16px rgba(0,0,0,.35);
}

/* 占位封面 */
.zpb-no-cover {
    width: 100px;
    height: 130px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f0f0f0;
    border-radius: 8px;
    color: #bbb;
}
.dark-theme .zpb-no-cover {
    background: #2d3035;
    color: #555;
}

/* --- 空状态 --- */
.zpb-cat-empty {
    padding: 40px 20px;
    text-align: center;
    font-size: 15px;
}

/* --- 分页 --- */
.zpb-pagination {
    display: flex;
    justify-content: center;
    gap: 6px;
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid #f0f0f0;
    flex-wrap: wrap;
}
.zpb-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 10px;
    border-radius: 6px;
    background: #f5f5f5;
    color: #666;
    font-size: 14px;
    text-decoration: none;
    transition: all .2s;
}
.zpb-pagination .page-numbers:hover {
    background: #ffe8e8;
    color: #c62828;
}
.zpb-pagination .page-numbers.current {
    background: linear-gradient(135deg, #ff6b6b, #ee5a24);
    color: #fff;
    font-weight: 600;
}
.zpb-pagination .page-numbers.dots {
    background: transparent;
    color: #bbb;
}
.dark-theme .zpb-pagination {
    border-top-color: rgba(255,255,255,.06);
}
.dark-theme .zpb-pagination .page-numbers {
    background: #2d3035;
    color: #aaa;
}
.dark-theme .zpb-pagination .page-numbers:hover {
    background: #3a2020;
    color: #ff8a80;
}
.dark-theme .zpb-pagination .page-numbers.current {
    background: linear-gradient(135deg, #c62828, #bf360c);
}

/* --- 响应式 --- */
@media (max-width: 768px) {
    body.zpb-cat-page .zpb-resource-list .zpb-cat-cover-wrap {
        margin-right: 14px;
    }
    body.zpb-cat-page .zpb-resource-list .zpb-cat-cover-wrap img {
        width: 80px;
        height: 104px;
    }
    body.zpb-cat-page .zpb-resource-list .zpb-cat-card {
        padding: 16px 14px;
        border-radius: 10px;
    }
    body.zpb-cat-page .zpb-resource-list .item-heading a {
        font-size: 15px;
    }
    body.zpb-cat-page .zpb-resource-list .item-excerpt {
        font-size: 12px;
        -webkit-line-clamp: 3;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    body.zpb-cat-page .zpb-resource-list .item-tags {
        max-width: 100%;
        overflow: hidden;
    }
    body.zpb-cat-page .zpb-resource-list .item-tags .zpb-tag-item {
        padding: 3px 8px;
        font-size: 11px;
        white-space: nowrap;
    }
    body.zpb-cat-page .zpb-resource-list .item-meta {
        font-size: 12px;
    }
    body.zpb-cat-page .zpb-resource-list .meta-right item {
        white-space: nowrap;
    }
    .zpb-no-cover {
        width: 96px;
        height: 124px;
    }
    .zpb-category-item {
        padding: 6px 13px;
        font-size: 13px;
    }
    body.zpb-cat-page .zpb-header {
        padding: 12px 14px;
    }
}

@media (max-width: 480px) {
    body.zpb-cat-page .zpb-resource-list .zpb-cat-cover-wrap {
        margin-right: 12px;
    }
    body.zpb-cat-page .zpb-resource-list .zpb-cat-cover-wrap img {
        width: 96px;
        height: 124px;
    }
    body.zpb-cat-page .zpb-resource-list .zpb-cat-card {
        padding: 14px 12px;
        border-radius: 10px;
        margin-bottom: 10px;
    }
    body.zpb-cat-page .zpb-resource-list .item-heading a {
        font-size: 14px;
    }
    body.zpb-cat-page .zpb-resource-list .item-excerpt {
        font-size: 12px;
        -webkit-line-clamp: 3;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    body.zpb-cat-page .zpb-resource-list .item-tags {
        max-width: 100%;
        overflow: hidden;
    }
    body.zpb-cat-page .zpb-resource-list .item-tags .zpb-tag-item {
        padding: 2px 7px;
        font-size: 10px;
        white-space: nowrap;
    }
    body.zpb-cat-page .zpb-resource-list .item-tags .zpb-tag-item i {
        font-size: 10px;
        margin-right: 3px;
    }
    body.zpb-cat-page .zpb-resource-list .item-meta {
        font-size: 11px;
    }
    body.zpb-cat-page .zpb-resource-list .meta-right item {
        white-space: nowrap;
    }
    body.zpb-cat-page .zpb-header {
        padding: 10px 12px;
    }
    body.zpb-cat-page .zpb-header .box-title {
        font-size: 16px;
    }
    .zpb-no-cover {
        width: 92px;
        height: 120px;
    }
    .zpb-pagination .page-numbers {
        min-width: 32px;
        height: 32px;
        font-size: 13px;
    }
}

/* ========== 搜索页专属样式 ========== */
/* 搜索头部与分类头部略有差异（搜索图标 + 高亮结果数） */
body.zpb-search-page .zpb-search-header .box-title i {
    color: var(--theme-color, #ff5b95);
}
body.zpb-search-page .zpb-search-header .c-red {
    color: var(--theme-color, #ff5b95);
    font-weight: 700;
}

/* 夜间模式：搜索头部 */
body.dark-theme.zpb-search-page .zpb-search-header .box-title {
    color: #eee;
}
body.dark-theme.zpb-search-page .zpb-search-header .box-title i {
    color: var(--theme-color, #ff5b95);
}
body.dark-theme.zpb-search-page .zpb-search-header p.muted-color {
    color: #aaa;
}

/* 搜索框容器 */
.zpb-search-box-wrap {
    padding: 16px 18px;
}
.zpb-search-form {
    gap: 10px;
}
.zpb-search-form .form-control {
    height: 42px;
    font-size: 15px;
    border-radius: 8px;
    border: 2px solid #e0e0e0;
    padding: 0 16px;
    background: #f9fafb;
    transition: border-color .25s ease, background .25s ease;
}
.zpb-search-form .form-control:focus {
    border-color: var(--theme-color, #ff5b95);
    background: #fff;
    outline: none;
    box-shadow: 0 0 0 3px rgba(255,91,149,.1);
}
.zpb-search-form .btn-primary {
    height: 42px;
    padding: 0 24px;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 500;
    background: var(--theme-color, #ff5b95);
    border: none;
    color: #fff;
    cursor: pointer;
    white-space: nowrap;
    transition: opacity .2s ease;
}
.zpb-search-form .btn-primary:hover {
    opacity: 0.85;
}

/* 夜间模式搜索框 */
body.dark-theme .zpb-search-form .form-control {
    background: #1f2328;
    border-color: #3a3f45;
    color: #ddd;
}
body.dark-theme .zpb-search-form .form-control:focus {
    border-color: var(--theme-color, #ff5b95);
    background: #22262b;
}
body.dark-theme .zpb-search-form .form-control::placeholder {
    color: #666;
}

/* ========== 文章底部：版权声明 + 相关资源 ========== */
.zpb-card-notice,
.zpb-card-rel {
    margin-top: 24px;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0,0,0,.06);
    overflow: hidden;
}
.zpb-section-head {
    margin: 0;
    padding: 16px 20px;
    font-size: 17px;
    font-weight: 600;
    color: #333;
    border-bottom: 1px solid #f0f0f0;
    display: flex;
    align-items: center;
    gap: 8px;
}
.zpb-section-head i {
    color: var(--theme-color, #ff5b95);
    font-size: 16px;
}
.zpb-notice-box {
    padding: 18px 20px;
    line-height: 1.85;
    font-size: 14px;
    color: #555;
}
.zpb-notice-box p {
    margin: 0 0 10px;
}
.zpb-notice-box p:last-child {
    margin-bottom: 0;
}
.zpb-notice-box strong {
    color: #333;
}

/* 相关资源网格 */
.zpb-rel-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 10px;
    padding: 16px 20px;
}
.zpb-rel-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border-radius: 8px;
    background: #f8f9fb;
    color: #444;
    font-size: 14px;
    text-decoration: none;
    transition: all .25s ease;
    border: 1px solid transparent;
}
.zpb-rel-item:hover {
    background: #fff;
    border-color: var(--theme-color, #ff5b95);
    color: var(--theme-color, #ff5b95);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,.08);
}
.zpb-rel-item i {
    font-size: 16px;
    color: #d63638;
    flex-shrink: 0;
}
.zpb-rel-item:hover i {
    color: var(--theme-color, #ff5b95);
}
.zpb-rel-item span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* 夜间模式 */
body.dark-theme .zpb-card-notice,
body.dark-theme .zpb-card-rel {
    background: #2d3136;
    box-shadow: 0 2px 12px rgba(0,0,0,.25);
}
body.dark-theme .zpb-section-head {
    color: #eee;
    border-bottom-color: #3a3f45;
}
body.dark-theme .zpb-notice-box {
    color: #bbb;
}
body.dark-theme .zpb-notice-box strong {
    color: #ddd;
}
body.dark-theme .zpb-rel-item {
    background: #363a40;
    color: #ccc;
    border-color: #3a3f45;
}
body.dark-theme .zpb-rel-item:hover {
    background: #3e4248;
    border-color: var(--theme-color, #ff5b95);
    color: var(--theme-color, #ff5b95);
}

/* 响应式 */
@media (max-width: 768px) {
    .zpb-rel-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
        padding: 12px 14px;
    }
    .zpb-rel-item {
        padding: 8px 10px;
        font-size: 13px;
        min-width: 0;          /* 关键：让 grid 子项可收缩 */
        overflow: hidden;
    }
    .zpb-rel-item span {
        display: block;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .zpb-section-head {
        padding: 14px 16px;
        font-size: 15px;
    }
    .zpb-notice-box {
        padding: 14px 16px;
    }
}
@media (max-width: 480px) {
    .zpb-rel-grid {
        grid-template-columns: 1fr;   /* 小屏单列，避免溢出 */
        gap: 6px;
        padding: 10px 12px;
    }
}
