/* 核心：代码块默认不换行（水平滚动） */
.highlight pre,
pre.literal-block,
.rst-content pre,
div.highlight pre {
    white-space: pre !important;
    word-wrap: normal !important;
    overflow-x: auto !important;
}

/* 核心：开启允许换行后的状态 */
.code-wrap-enabled .highlight pre,
.code-wrap-enabled pre.literal-block,
.code-wrap-enabled .rst-content pre,
.code-wrap-enabled div.highlight pre {
    white-space: pre-wrap !important;
    word-wrap: break-word !important;
    word-break: break-all !important;
    overflow-wrap: break-word !important;
    overflow-x: auto !important;
}

/* 新增：顶部切换按钮的激活状态（开启换行时变色） */
.code-wrap-button.active {
    color: var(--pst-color-primary) !important;
    background-color: var(--pst-color-primary-bg, rgba(0,0,0,0.05));
}

/* =========================================================
   开启换行时：处理包含行号的代码块 (悬挂缩进独立列)
   ========================================================= */

/* 1. 找到包含行号（.linenos）的 pre 标签，为其左侧留出空白列 */
.code-wrap-enabled .highlight pre:has(.linenos),
.code-wrap-enabled pre.literal-block:has(.linenos),
.code-wrap-enabled .rst-content pre:has(.linenos),
.code-wrap-enabled div.highlight pre:has(.linenos) {
    position: relative;
    padding-left: 3.8em !important; /* 给行号列腾出空间 (可根据行号最大位数微调) */
}

/* 2. 将行号绝对定位到左侧腾出的空白列中 */
.code-wrap-enabled .highlight pre .linenos,
.code-wrap-enabled pre.literal-block .linenos,
.code-wrap-enabled .rst-content pre .linenos,
.code-wrap-enabled div.highlight pre .linenos {
    position: absolute;
    left: 0.5em;          /* 固定在左侧 */
    width: 2.5em;         /* 固定宽度保证多位数行号对齐整齐 */
    text-align: right;    /* 行号右对齐 */
    padding-right: 0 !important; 
    margin-right: 0 !important;
    user-select: none;    /* 防止用户在复制时选中行号（优化体验） */
    opacity: 0.7;         /* 可选：让行号颜色稍微变淡，区分度更好 */
}