@import url("https://blog-static.cnblogs.com/files/blogs/865495/shadcn.css");

/* =========================
   文章正文代码块：VS Code 深色风格
   ========================= */

/* 整体代码容器 */
#cnblogs_post_body .cnblogs_code,
#cnblogs_post_body pre,
#cnblogs_post_body .hljs {
    background: #1e1e1e !important;
    color: #d4d4d4 !important;
    border: none !important;
    border-radius: 14px !important;
    box-shadow: 0 10px 28px rgba(0, 0, 0, .16) !important;
    overflow: hidden !important;
}

/* 修复 pre 默认外边距 */
#cnblogs_post_body pre {
    margin: 0 !important;
}

/* 代码字体与排版 */
#cnblogs_post_body pre,
#cnblogs_post_body code,
#cnblogs_post_body .cnblogs_code,
#cnblogs_post_body .hljs,
#cnblogs_post_body .hljs code,
#cnblogs_post_body .hljs-ln-code,
#cnblogs_post_body .cnblogs_code td,
#cnblogs_post_body .cnblogs_code span {
    font-family: "JetBrains Mono", "Cascadia Code", "Fira Code", "Consolas",
                 "SFMono-Regular", "Monaco", "Courier New", monospace !important;
    font-size: 15px !important;
    line-height: 1.8 !important;
    font-weight: 500 !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* 保证缩进、tab、换行逻辑正常 */
#cnblogs_post_body pre,
#cnblogs_post_body pre code,
#cnblogs_post_body .cnblogs_code pre,
#cnblogs_post_body .hljs,
#cnblogs_post_body .hljs code,
#cnblogs_post_body .hljs-ln-code {
    white-space: pre !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    tab-size: 4 !important;
    -moz-tab-size: 4 !important;
}

/* 防止被全局 white-space 规则污染 */
#cnblogs_post_body pre *,
#cnblogs_post_body .hljs *,
#cnblogs_post_body .hljs-ln-code * {
    white-space: inherit !important;
}

/* 去掉代码块里丑陋横线：很多主题给 table/td/tr 加 border，会误伤代码高亮 */
#cnblogs_post_body .cnblogs_code table,
#cnblogs_post_body .cnblogs_code tbody,
#cnblogs_post_body .cnblogs_code tr,
#cnblogs_post_body .cnblogs_code td,
#cnblogs_post_body .hljs table,
#cnblogs_post_body .hljs tbody,
#cnblogs_post_body .hljs tr,
#cnblogs_post_body .hljs td,
#cnblogs_post_body .hljs-ln,
#cnblogs_post_body .hljs-ln tr,
#cnblogs_post_body .hljs-ln td {
    border: none !important;
    border-top: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
    background-image: none !important;
}

/* 行号区域 */
#cnblogs_post_body .hljs-ln-numbers,
#cnblogs_post_body .cnblogs_code .linenumber,
#cnblogs_post_body .cnblogs_code td:first-child {
    color: rgba(212, 212, 212, .42) !important;
    background: #181818 !important;
    border-right: 1px solid rgba(255, 255, 255, .07) !important;
    text-align: right !important;
    padding: 0 12px !important;
    min-width: 46px !important;
    user-select: none;
}

/* 代码正文区 */
#cnblogs_post_body .hljs-ln-code,
#cnblogs_post_body .cnblogs_code td:last-child {
    padding-left: 16px !important;
    color: #d4d4d4 !important;
}

/* 行内 code 不要太突兀 */
#cnblogs_post_body p code,
#cnblogs_post_body li code,
#cnblogs_post_body td code,
#cnblogs_post_body blockquote code {
    background: rgba(27, 31, 35, .08) !important;
    color: #c7254e !important;
    border-radius: 6px !important;
    padding: 2px 6px !important;
    box-shadow: none !important;
    font-size: .92em !important;
}

/* =========================
   长代码折叠
   ========================= */
#cnblogs_post_body .code-fold-box {
    margin: 16px 0;
}

#cnblogs_post_body .code-fold-content {
    position: relative;
    overflow: hidden;
    transition: max-height .28s ease;
}

#cnblogs_post_body .code-fold-box.is-collapsed .code-fold-content {
    max-height: 360px;
}

/* 深色遮罩，和代码块统一 */
#cnblogs_post_body .code-fold-mask {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 96px;
    pointer-events: none;
    background: linear-gradient(
        to bottom,
        rgba(30, 30, 30, 0),
        rgba(30, 30, 30, .72) 55%,
        rgba(30, 30, 30, .94) 82%,
        rgba(30, 30, 30, 1)
    );
}

#cnblogs_post_body .code-fold-box.is-collapsed .code-fold-mask {
    display: block;
}

/* 展开按钮 */
#cnblogs_post_body .code-fold-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 10px;
    padding: 8px 16px;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 10px;
    background: #2d2d30;
    color: #d4d4d4;
    font-size: 14px;
    line-height: 1;
    cursor: pointer;
    transition: all .2s ease;
}

#cnblogs_post_body .code-fold-btn:hover {
    background: #38383d;
    color: #ffffff;
    transform: translateY(-1px);
}

/* 按钮聚焦效果 */
#cnblogs_post_body .code-fold-btn:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(86, 156, 214, .22);
}

/* 代码块与正文呼吸感 */
#cnblogs_post_body .cnblogs_code,
#cnblogs_post_body pre,
#cnblogs_post_body .hljs,
#cnblogs_post_body .code-fold-box {
    margin-top: 18px !important;
    margin-bottom: 18px !important;
}

/* 避免主题对表格做统一圆角/背景，误伤代码块 */
#cnblogs_post_body .cnblogs_code table {
    background: transparent !important;
    border-radius: 0 !important;
}

/* 防止某些主题给 td 统一加背景 */
#cnblogs_post_body .cnblogs_code td {
    background: transparent !important;
}

/* 让复制按钮不显得突兀（如果你的主题有复制按钮） */
#cnblogs_post_body .cnblogs_code_toolbar,
#cnblogs_post_body .cnblogs_code_copy {
    background: transparent !important;
    border: none !important;
}