@import url("https://fontsapi.zeoseven.com/293/main/result.css");
/*@import url("https://fontsapi.zeoseven.com/84/main/result.css");*/
@import url("https://fontsapi.zeoseven.com/66/main/result.css");
/* @import url("https://fontsapi.zeoseven.com/442/main/result.css");
Maple Mono NF CN */
@import url("https://ik.imagekit.io/u2v7ktp8b/LXGWBrightCode-Regular/result.css");
/* LXGW Bright Code */
/* ZSFT-391：IBM Plex Mono */
@import url("data:text/css,%40font-face%7Bfont-family%3A%22ZSFT-391%22%3Bsrc%3Aurl(%22https%3A%2F%2Ffontsapi.zeoseven.com%2F391%2Fbold.woff2%22)%20format(%22woff2%22)%3Bfont-style%3Anormal%3Bfont-weight%3A700%3Bfont-display%3Aswap%3B%7D%40font-face%7Bfont-family%3A%22ZSFT-391%22%3Bsrc%3Aurl(%22https%3A%2F%2Ffontsapi.zeoseven.com%2F391%2Fbold.woff2%22)%20format(%22woff2%22)%3Bfont-style%3Anormal%3Bfont-weight%3A700%3Bfont-display%3Aswap%3B%7D%40font-face%7Bfont-family%3A%22ZSFT-391%22%3Bsrc%3Aurl(%22https%3A%2F%2Ffontsapi.zeoseven.com%2F391%2Fextra-light.woff2%22)%20format(%22woff2%22)%3Bfont-style%3Anormal%3Bfont-weight%3A200%3Bfont-display%3Aswap%3B%7D%40font-face%7Bfont-family%3A%22ZSFT-391%22%3Bsrc%3Aurl(%22https%3A%2F%2Ffontsapi.zeoseven.com%2F391%2Fextra-light-italic.woff2%22)%20format(%22woff2%22)%3Bfont-style%3Aitalic%3Bfont-weight%3A200%3Bfont-display%3Aswap%3B%7D%40font-face%7Bfont-family%3A%22ZSFT-391%22%3Bsrc%3Aurl(%22https%3A%2F%2Ffontsapi.zeoseven.com%2F391%2Fitalic.woff2%22)%20format(%22woff2%22)%3Bfont-style%3Aitalic%3Bfont-weight%3A400%3Bfont-display%3Aswap%3B%7D%40font-face%7Bfont-family%3A%22ZSFT-391%22%3Bsrc%3Aurl(%22https%3A%2F%2Ffontsapi.zeoseven.com%2F391%2Flight.woff2%22)%20format(%22woff2%22)%3Bfont-style%3Anormal%3Bfont-weight%3A300%3Bfont-display%3Aswap%3B%7D%40font-face%7Bfont-family%3A%22ZSFT-391%22%3Bsrc%3Aurl(%22https%3A%2F%2Ffontsapi.zeoseven.com%2F391%2Flight-italic.woff2%22)%20format(%22woff2%22)%3Bfont-style%3Aitalic%3Bfont-weight%3A300%3Bfont-display%3Aswap%3B%7D%40font-face%7Bfont-family%3A%22ZSFT-391%22%3Bsrc%3Aurl(%22https%3A%2F%2Ffontsapi.zeoseven.com%2F391%2Fmedium.woff2%22)%20format(%22woff2%22)%3Bfont-style%3Anormal%3Bfont-weight%3A500%3Bfont-display%3Aswap%3B%7D%40font-face%7Bfont-family%3A%22ZSFT-391%22%3Bsrc%3Aurl(%22https%3A%2F%2Ffontsapi.zeoseven.com%2F391%2Fmedium-italic.woff2%22)%20format(%22woff2%22)%3Bfont-style%3Aitalic%3Bfont-weight%3A500%3Bfont-display%3Aswap%3B%7D%40font-face%7Bfont-family%3A%22ZSFT-391%22%3Bsrc%3Aurl(%22https%3A%2F%2Ffontsapi.zeoseven.com%2F391%2Fmain.woff2%22)%20format(%22woff2%22)%3Bfont-style%3Anormal%3Bfont-weight%3A400%3Bfont-display%3Aswap%3B%7D%40font-face%7Bfont-family%3A%22ZSFT-391%22%3Bsrc%3Aurl(%22https%3A%2F%2Ffontsapi.zeoseven.com%2F391%2Fsemi-bold.woff2%22)%20format(%22woff2%22)%3Bfont-style%3Anormal%3Bfont-weight%3A600%3Bfont-display%3Aswap%3B%7D%40font-face%7Bfont-family%3A%22ZSFT-391%22%3Bsrc%3Aurl(%22https%3A%2F%2Ffontsapi.zeoseven.com%2F391%2Fsemi-bold-italic.woff2%22)%20format(%22woff2%22)%3Bfont-style%3Aitalic%3Bfont-weight%3A600%3Bfont-display%3Aswap%3B%7D%40font-face%7Bfont-family%3A%22ZSFT-391%22%3Bsrc%3Aurl(%22https%3A%2F%2Ffontsapi.zeoseven.com%2F391%2Ftext.woff2%22)%20format(%22woff2%22)%3Bfont-style%3Anormal%3Bfont-weight%3A450%3Bfont-display%3Aswap%3B%7D%40font-face%7Bfont-family%3A%22ZSFT-391%22%3Bsrc%3Aurl(%22https%3A%2F%2Ffontsapi.zeoseven.com%2F391%2Ftext-italic.woff2%22)%20format(%22woff2%22)%3Bfont-style%3Aitalic%3Bfont-weight%3A450%3Bfont-display%3Aswap%3B%7D%40font-face%7Bfont-family%3A%22ZSFT-391%22%3Bsrc%3Aurl(%22https%3A%2F%2Ffontsapi.zeoseven.com%2F391%2Fthin.woff2%22)%20format(%22woff2%22)%3Bfont-style%3Anormal%3Bfont-weight%3A100%3Bfont-display%3Aswap%3B%7D%40font-face%7Bfont-family%3A%22ZSFT-391%22%3Bsrc%3Aurl(%22https%3A%2F%2Ffontsapi.zeoseven.com%2F391%2Fthin-italic.woff2%22)%20format(%22woff2%22)%3Bfont-style%3Aitalic%3Bfont-weight%3A100%3Bfont-display%3Aswap%3B%7D");


html {
    --pst-color-primary: #0a7d91;
    --pst-color-primary-text: #fff;
    --pst-color-primary-highlight: #053f49;
    --sd-color-primary: var(--pst-color-primary);
    --sd-color-primary-text: var(--pst-color-primary-text);
    --sd-color-primary-highlight: var(--pst-color-primary-highlight);
    --sd-color-primary-bg: #d0ecf1;
    --sd-color-primary-bg-text: #14181e;
    --pst-color-secondary: #8045e5;
    --pst-color-secondary-text: #fff;
    --pst-color-secondary-highlight: #591bc2;
    --sd-color-secondary: var(--pst-color-secondary);
    --sd-color-secondary-text: var(--pst-color-secondary-text);
    --sd-color-secondary-highlight: var(--pst-color-secondary-highlight);
    --sd-color-secondary-bg: #e0c7ff;
    --sd-color-secondary-bg-text: #14181e;
    --pst-color-success: #00843f;
    --pst-color-success-text: #fff;
    --pst-color-success-highlight: #00381a;
    --sd-color-success: var(--pst-color-success);
    --sd-color-success-text: var(--pst-color-success-text);
    --sd-color-success-highlight: var(--pst-color-success-highlight);
    --sd-color-success-bg: #d6ece1;
    --sd-color-success-bg-text: #14181e;
    --pst-color-info: #276be9;
    --pst-color-info-text: #fff;
    --pst-color-info-highlight: #124ab1;
    --sd-color-info: var(--pst-color-info);
    --sd-color-info-text: var(--pst-color-info-text);
    --sd-color-info-highlight: var(--pst-color-info-highlight);
    --sd-color-info-bg: #dce7fc;
    --sd-color-info-bg-text: #14181e;
    --pst-color-warning: #f66a0a;
    --pst-color-warning-text: #14181e;
    --pst-color-warning-highlight: #ad4a06;
    --sd-color-warning: var(--pst-color-warning);
    --sd-color-warning-text: var(--pst-color-warning-text);
    --sd-color-warning-highlight: var(--pst-color-warning-highlight);
    --sd-color-warning-bg: #f8e3d0;
    --sd-color-warning-bg-text: #14181e;
    --pst-color-danger: #d72d47;
    --pst-color-danger-text: #fff;
    --pst-color-danger-highlight: #9a1d30;
    --sd-color-danger: var(--pst-color-danger);
    --sd-color-danger-text: var(--pst-color-danger-text);
    --sd-color-danger-highlight: var(--pst-color-danger-highlight);
    --sd-color-danger-bg: #f9e1e4;
    --sd-color-danger-bg-text: #14181e;
    --pst-color-light: #f3f4f5;
    --pst-color-light-text: #14181e;
    --pst-color-light-highlight: #c9ced2;
    --sd-color-light: var(--pst-color-light);
    --sd-color-light-text: var(--pst-color-light-text);
    --sd-color-light-highlight: var(--pst-color-light-highlight);
    --sd-color-light-bg: #f7f7f8;
    --sd-color-light-bg-text: #14181e;
    --pst-color-muted: #29313d;
    --pst-color-muted-text: #fff;
    --pst-color-muted-highlight: #0a0c0f;
    --sd-color-muted: var(--pst-color-muted);
    --sd-color-muted-text: var(--pst-color-muted-text);
    --sd-color-muted-highlight: var(--pst-color-muted-highlight);
    --sd-color-muted-bg: #5a6c86;
    --sd-color-muted-bg-text: #fff;
    --pst-color-dark: #222832;
    --pst-color-dark-text: #fff;
    --pst-color-dark-highlight: #030404;
    --sd-color-dark: var(--pst-color-dark);
    --sd-color-dark-text: var(--pst-color-dark-text);
    --sd-color-dark-highlight: var(--pst-color-dark-highlight);
    --pst-color-black: #14181e;
    --pst-color-black-text: #fff;
    --pst-color-black-highlight: #000;
    --sd-color-black: var(--pst-color-black);
    --sd-color-black-text: var(--pst-color-black-text);
    --sd-color-black-highlight: var(--pst-color-black-highlight);
    --pst-color-white: #fff;
    --pst-color-white-text: #14181e;
    --pst-color-white-highlight: #d9d9d9;
    --sd-color-white: var(--pst-color-white);
    --sd-color-white-text: var(--pst-color-white-text);
    --sd-color-white-highlight: var(--pst-color-white-highlight);
    --pst-color-primary-bg: #d0ecf1;
    --pst-color-secondary-bg: #e0c7ff;
    --pst-color-accent: #c132af;
    --pst-color-accent-bg: #f8dff5;
    --pst-color-info-bg: #dce7fc;
    --pst-color-warning-bg: #f8e3d0;
    --pst-color-success-bg: #d6ece1;
    --pst-color-attention: var(--pst-color-warning);
    --pst-color-attention-bg: var(--pst-color-warning-bg);
    --pst-color-danger-bg: #f9e1e4;
    --pst-color-text-base: #222832;
    --pst-color-text-muted: #48566b;
    --pst-color-heading-color: #fff;
    --pst-color-shadow: rgba(0, 0, 0, .1);
    --pst-color-border: #d1d5da;
    --pst-color-border-muted: rgba(23, 23, 26, .2);
    --pst-color-blockquote-notch: #677384;
    --pst-color-inline-code: #912583;
    --pst-color-inline-code-links: #085d6c;
    --pst-color-target: #f3cf95;
    --pst-color-table: #14181e;
    --pst-color-table-row-hover-bg: #b780ff;
    --pst-color-table-inner-border: #e5e7ea;
    --pst-color-background: #fff;
    --pst-color-on-background: #fff;
    --pst-color-surface: #f3f4f5;
    --pst-color-on-surface: #222832;
    --pst-color-link: var(--pst-color-primary);
    --pst-color-link-hover: var(--pst-color-secondary);
    --pst-color-table-outer-border: var(--pst-color-surface);
    --pst-color-table-heading-bg: var(--pst-color-surface);
    --pst-color-table-row-zebra-high-bg: var(--pst-color-on-background);
    --pst-color-table-row-zebra-low-bg: var(--pst-color-surface);
}

:root {
    --color-primary: #bc4749;
    /*--color-primary: #198754;*/
    --color-accent: #4070a0;
    --color-secondary: #b66cff;
    --color-body: #283618;

    --note-title-color: rgba(68, 138, 255, .1);
    --note-border-color: #007bff;
    --warning-title-color: rgba(220, 53, 69, .1);
    --warning-border-color: #dc3545;
    --hint-title-color: rgba(255, 193, 7, .2);
    --hint-border-color: #ffc107;
    --caution-title-color: rgba(253, 126, 20, .1);
    --caution-border-color: #fd7e14;
    --grey-title-color: rgba(204, 204, 204, .2);
    --grey-border-color: #ccc;
}

:root {
    --breakpoint-xl: 1200px;
    --breakpoint-lg: 992px;
    --breakpoint-md: 768px;
    --breakpoint-sm: 576px;
}

html {
    scroll-behavior: smooth;
    font-size: 1rem;

    &.font-plus {
        font-size: 1.1rem;
    }

    &.font-minus {
        font-size: 0.9rem;
    }

    @media (min-width: var(--breakpoint-md)) {
        font-size: 16px;

        &.font-plus {
            font-size: calc(16px * 1.2);
        }

        &.font-minus {
            font-size: calc(16px * 0.9);
        }
    }

    @media (min-width: var(--breakpoint-lg)) {
        font-size: 18px;

        &.font-plus {
            font-size: calc(18px * 1.2);
        }

        &.font-minus {
            font-size: calc(18px * 0.9);
        }
    }

    @media (min-width: var(--breakpoint-xl)) {
        font-size: 18px;

        &.font-plus {
            font-size: calc(18px * 1.2);
        }

        &.font-minus {
            font-size: calc(18px * 0.9);
        }
    }
}

body {
    line-height: 1.8;
    letter-spacing: 0.08rem;
    font-weight: normal;
    font-family: "LXGW Bright Code", sans-serif;
    background-color: #f5f4ef;
    color: var(--color-body);


    div.cell:has(> *:nth-child(2)) div.cell_input:first-child,
    div.cell:has(> *:nth-child(2)) details:first-child {
        border-bottom-left-radius: .4rem !important;
        border-bottom-right-radius: .4rem !important;
    }

    div.cell div.cell_input {
        border: unset !important;
    }

    .cell_output .output.text_plain,
    .cell_output .output.stream,
    .cell_output .output.traceback,
    .cell_output .output.stderr {
        border: unset;
        background-color: #ae563020;
        margin-top: 1rem !important;
        margin-bottom: 1rem !important;
        box-shadow: none;
    }
}

.qe-page {
    /*max-width: 800px;*/
    @media (max-width: var(--breakpoint-md)) {
        max-width: 100%;
    }
}

h1,
h2,
h3,
h4,
h5 {
    font-family: "寒蝉团圆体 Round", -apple-system, Microsoft Yahei, sans-serif !important;
    font-weight: 400 !important;
    color: #444 !important;
}

h1 {
    font-size: 1.7em !important;
}

.qe-sidebar__header {
    font-family: "寒蝉团圆体 Round", -apple-system, Microsoft Yahei, sans-serif !important;
}

.qe-sidebar__nav .caption-text {
    font-family: "寒蝉团圆体 Round", -apple-system, Microsoft Yahei, sans-serif !important;
    font-weight: 400;
    font-size: 1rem;
}

.qe-page__toc {
    font-family: "寒蝉团圆体 Round", -apple-system, Microsoft Yahei, sans-serif !important;
    font-weight: 200 !important;
}

pre {
    word-wrap: break-word;
    font-family: "ZSFT-391", "寒蝉团圆体 Round", sans-serif !important;
    font-size: .9rem;
    white-space: pre-wrap;
    line-height: 1.5rem;
    letter-spacing: 0.04rem !important;
    background-color: transparent !important;
}

div.cell_output pre {
    font-family: "LXGW Bright Code", sans-serif !important;
    letter-spacing: 0 !important;
}

div.cell_output:before {
    background-color: #f3f4f5;
    border-radius: .25rem;
    content: "运行结果：";
    font-size: 80%;
    padding: 2px 5px;
}

/* 颜色配置 */
.main-index #qe-page-author-links {
    border-bottom: 5px solid var(--grey-border-color) !important;
    margin: 0 0 2rem;
    padding: 0 0 1rem;
}


/* 抬头 */
.qe-page__header {
    font-family: "寒蝉团圆体 Round", -apple-system, Microsoft Yahei, sans-serif !important;
    border-bottom: 0px solid var(--color-primary) !important;
    margin: 0 0 1rem;
    padding: 10px;
}

.qe-page__header-heading {
    font-size: 1rem !important;
    font-weight: 600 !important;
}

.qe-page__header-copy {
    font-weight: 400;
}

.qe-page__header-authors {
    font-size: .9rem;
    margin: .25rem 0 0;
    padding-bottom: 0.5rem !important;
}

/* 页脚 */
.qe-page__footer {
    font-family: "寒蝉团圆体 Round", -apple-system, Microsoft Yahei, sans-serif !important;
    border-top: 0px solid var(--color-primary) !important;
    text-align: center !important;
}

a {
    color: var(--color-primary) !important;
    overflow-wrap: break-word;
    text-decoration: none;
    transition: all .15s linear;
    text-decoration: none !important;
    /* 移除默认下划线 */
}

/* 鼠标悬停状态 */
a:hover {
    color: var(--color-accent) !important;
    text-decoration: none !important;
    /* 移除默认下划线 */
}

.custom-card:hover {
    background-color: #ae563020;
}

.alert {
    --bs-alert-margin-bottom: 0rem !important;
}

blockquote {
    background-color: #f3f4f5;
    border-left: 5px solid #1665ad;
    margin: 1rem 0;
    padding: .5rem 2rem;
}

blockquote p {
    margin-bottom: 1rem !important;
}

code.literal {
    background-color: #efefef !important;
}

/* 封面 */
.cover-container {
    text-align: center;
    margin: 0 0 1rem;
}

.cover-image {
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.qe-page__toc .inner {
    position: sticky;
    top: 7rem;
    height: auto !important;
}

b,
strong {
    color: var(--color-primary);
    /* 使用主题主色 */
}

/*圆角*/
.qe-page__content .cell_output .output.stream,
.qe-page__content .cell_output .output.text_plain {
    border-radius: .25rem !important;
}

.highlight .err {
    /* border: 1px solid red; */
    border: none !important;
}


/* 引流栏容器 */
.promo-bar {
    margin-top: 330px;
    padding: 12px 0;
    /*border-top: 1px solid #eaecef;*/
    overflow-y: auto;
}

/* 内部包装器：宽度占满，左右内边距与返回顶部按钮对齐 */
.promo-bar__inner {
    width: 100%;
    margin: 0;
}

/* 图片列表：竖向排列，去掉默认黑点 */
.promo-bar__list {
    display: flex;
    flex-direction: column;
    align-items: stretch; /* 让每个子项宽度占满 */
    /*gap: 16px;*/
    margin: 0;
    padding: 0;
    list-style: none;
}

/* 单个图片项：宽度占满，内容居中 */
.promo-bar__item {
    width: 100%;
    text-align: center;
}

/* 关键修改：让链接占满整个图片项宽度，并设为块级元素 */
.promo-bar__item a {
    display: block; /* 改为块级元素，宽度自动100% */
    width: 100%; /* 显式设置宽度，确保占满 */
    /*transition: transform 0.2s ease;*/
    text-align: center; /* 文本居中（针对图片居中对齐） */
}

.promo-bar__item a:hover {
    /*transform: scale(1.05);*/
}

/* 图片样式 - 方案一：保持原始比例，居中显示（推荐） */
.promo-bar__item img {
    width: auto;
    max-width: 100%; /* 限制最大宽度为容器宽度，防止溢出 */
    display: inline-block; /* 或 block，配合父级 text-align 居中 */
    margin: 0 auto; /* 水平居中 */
    border-radius: 4px;
}