/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Default css file for jemdoc. */table#tlayout{border:none;border-collapse:separate;background:white}body{background:white;font-family:Georgia,serif;padding-bottom:8px;margin:0}#layout-menu{background:#f6f6f6;border:1px solid #dddddd;padding-top:.5em;padding-left:8px;padding-right:8px;font-size:1em;width:auto;white-space:nowrap;text-align:left;vertical-align:top}#layout-content{padding-top:0;padding-left:1em;padding-right:1em;border:none;background:white;text-align:left;vertical-align:top}#layout-menu a{line-height:1.5em;margin-left:.5em}tt{background:#ffffdd}pre,tt{font-size:90%;font-family:monaco,monospace}a,a>tt{color:#224b8d;text-decoration:none}a:hover{border-bottom:1px gray dotted}#layout-menu a.current:link,#layout-menu a.current:visited{color:#022b6d;border-bottom:1px gray solid}#layout-menu a:link,#layout-menu a:visited,#layout-menu a:hover{color:#527bbd;text-decoration:none}#layout-menu a:hover{text-decoration:none}div.menu-category{border-bottom:1px solid gray;margin-top:.8em;padding-top:.2em;padding-bottom:.1em;font-weight:700}div.menu-item{padding-left:16px;text-indent:-16px}div#toptitle{padding-bottom:.2em;margin-bottom:1.5em;border-bottom:3px double gray}div#toptitle+h2,div#toptitle+h3{margin-top:-.7em}div#subtitle{margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:.1em}em{font-style:italic}strong{font-weight:700}h1,h2,h3{color:#527bbd;margin-top:.7em;margin-bottom:.3em;padding-bottom:.2em;line-height:1;padding-top:.5em;border-bottom:1px solid #aaa}h1{font-size:165%}h2{padding-top:.8em;font-size:125%}h2+h3{padding-top:.2em}h3{font-size:110%;border-bottom:none}p{margin-top:0;margin-bottom:.8em;padding:0;line-height:1.3}pre{padding:0;margin:0}div#footer{font-size:small;border-top:1px solid #c0c0c0;padding-top:.1em;margin-top:4em;color:#c0c0c0}div#footer a{color:#80a0b0}div#footer-text{float:left;padding-bottom:8px}ul,ol,dl{margin-top:.2em;padding-top:0;margin-bottom:.8em}dt{margin-top:.5em;margin-bottom:0}dl{margin-left:20px}dd{color:#222}dd>*:first-child{margin-top:0}ul{list-style-position:outside;list-style-type:square}p+ul,p+ol{margin-top:-.5em}li ul,li ol{margin-top:-.3em}ol{list-style-position:outside;list-style-type:decimal}li p,dd p{margin-bottom:.3em}ol ol{list-style-type:lower-alpha}ol ol ol{list-style-type:lower-roman}p+div.codeblock{margin-top:-.6em}div.codeblock,div.infoblock{margin-right:0;margin-top:1.2em;margin-bottom:1.3em}div.blocktitle{font-weight:700;color:#cd7b62;margin-top:1.2em;margin-bottom:.1em}div.blockcontent{border:1px solid silver;padding:.3em .5em}div.infoblock>div.blockcontent{background:#ffffee}div.blockcontent p+ul,div.blockcontent p+ol{margin-top:.4em}div.infoblock p{margin-bottom:0}div.infoblock li p,div.infoblock dd p{margin-bottom:.5em}div.infoblock p+p{margin-top:.8em}div.codeblock>div.blockcontent{background:#f6f6f6}span.pycommand{color:#000070}span.statement{color:#008800}span.builtin{color:#000088}span.special{color:#990000}span.operator{color:#880000}span.error{color:#aa0000}span.comment,span.comment>*,span.string,span.string>*{color:#606060}@media print{#layout-menu{display:none}}#fwtitle{margin:2px}#fwtitle #toptitle{padding-left:.5em;margin-bottom:.5em}#layout-content h1:first-child,#layout-content h2:first-child,#layout-content h3:first-child{margin-top:-.7em}div#toptitle h1,#layout-content div#toptitle h1{margin-bottom:0;padding-bottom:.1em;padding-top:0;margin-top:.5em;border-bottom:none}img.eq{padding:0;padding-left:.1em;padding-right:.1em;margin:0}img.eqwl{padding-left:2em;padding-top:.6em;padding-bottom:.2em;margin:0}table{border:2px solid #000;border-collapse:collapse}td{padding:2px;padding-left:.5em;padding-right:.5em;text-align:center;border:1px solid gray}table+table{margin-top:1em}tr.heading{font-weight:700;border-bottom:2px solid #000}img{border:none}table.imgtable,table.imgtable td{border:none;text-align:left}html{scroll-behavior:smooth}body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background-color:#f8f9fa;color:#343a40;line-height:1.6}#layout-content{background-color:#fff;padding:2.5rem 3rem;border-radius:12px;box-shadow:0 6px 18px rgba(0,0,0,.06);border:1px solid #e9ecef}#toptitle h1{font-size:2.8rem;font-weight:700;color:#212529;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid #e9ecef}h2{font-size:1.75rem;font-weight:700;color:#343a40;border-bottom:2px solid #dee2e6;padding-bottom:.6em;margin-top:2.5em;margin-bottom:1.5em}a{color:#007bff;text-decoration:none;transition:all .2s ease-in-out}a:hover{color:#0056b3;text-decoration:underline}#layout-menu{position:fixed;top:0;left:0;bottom:0;width:260px;background-color:#fff;z-index:1001;transform:translateX(-100%);transition:transform .3s ease-in-out;padding:1.5rem;overflow-y:auto;box-shadow:0 0 20px rgba(0,0,0,.1)}#tlayout{width:100%;border-collapse:collapse}#layout-content{background-color:#fff;padding:2.5rem 3rem;border-radius:12px;box-shadow:0 6px 18px rgba(0,0,0,.06);border:1px solid #e9ecef;transition:margin-left .3s ease-in-out}.top-nav-bar{position:fixed;top:20px;right:30px;z-index:1000;background-color:#fff;padding:8px 16px;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.1);border:1px solid #e9ecef;display:flex;align-items:center;gap:8px}.top-nav-bar a{font-weight:500}.top-nav-link{color:#007bff!important}.top-nav-active{color:#212529!important;font-weight:600!important}.top-nav-divider{color:#dee2e6;font-size:.9em;user-select:none}.menu-category{user-select:none;font-weight:700;font-size:1.2em;color:#212529;margin-bottom:1em;padding-bottom:.5em;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;align-items:center}#menu-close-btn{font-size:1.8rem;font-weight:300;line-height:1;cursor:pointer;color:#6c757d;transition:color .2s}#menu-close-btn:hover{color:#212529}#menu-items .menu-item{padding-left:0;text-indent:0}#menu-items .menu-item a{display:flex;align-items:center;padding:10px 16px;border-radius:6px;color:#495057;font-weight:500;margin-bottom:4px}#menu-items .menu-item a:hover{background-color:#007bff;color:#fff;text-decoration:none}#menu-items .menu-item a.current{background-color:#007bff;color:#fff}#menu-items .menu-item a.current:hover{background-color:#0069d9;color:#fff}.menu-category-title{padding:.7em 1em .2em;display:block;color:#6c757d;font-weight:700;text-transform:uppercase;font-size:.8em;letter-spacing:.5px}.menu-icon{width:18px;height:18px;margin-right:12px;flex-shrink:0}.personal-info-wrapper{display:flex;align-items:flex-start;gap:2rem}.personal-info-wrapper>p{margin:0}.keywords-container{flex-shrink:0;width:auto;max-width:280px;display:flex;flex-wrap:wrap}.keyword-pill{display:inline-block;background-color:#e7f3ff;color:#005a9e;padding:6px 12px;border-radius:16px;margin:4px 2px;font-size:13px;font-weight:500;transition:all .2s ease-in-out;border:1px solid #bde0ff}.keyword-pill:hover{background-color:#d0e7ff;transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,.05)}ul,ol{padding-left:20px}li p{margin-bottom:.5em}#menu-toggle-btn{position:fixed;top:20px;left:20px;z-index:1000;cursor:pointer;background:#fff;border-radius:50%;width:50px;height:50px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;box-shadow:0 4px 12px rgba(0,0,0,.15);transition:all .2s ease-in-out}#menu-toggle-btn:hover{transform:scale(1.1);box-shadow:0 6px 16px rgba(0,0,0,.2)}#menu-toggle-btn span{display:block;width:22px;height:2px;background-color:#343a40}#page-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:1000;opacity:0;visibility:hidden;transition:opacity .3s,visibility 0s .3s}body.menu-open #layout-menu{transform:translateX(0)}body.menu-open #page-overlay{opacity:1;visibility:visible;transition:opacity .3s}

.education-logo {
    height: 30px !important;
    width: auto;
    vertical-align: middle;
    margin-right: 8px;
}

/* Language dropdown */
.lang-dropdown {
    position: relative;
}

.lang-dropdown-menu {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: 8px;
    box-shadow: 0 4px 16px rgba(0,0,0,.12);
    min-width: 120px;
    overflow: hidden;
    z-index: 1001;
}

.lang-dropdown-menu.show {
    display: block;
}

.lang-option {
    display: block;
    padding: 10px 16px;
    color: #495057 !important;
    font-weight: 500;
    text-decoration: none !important;
    transition: background .15s;
}

.lang-option:hover {
    background: #f0f4ff;
    color: #007bff !important;
    text-decoration: none !important;
}

.lang-option.active {
    color: #007bff !important;
    font-weight: 600;
    background: #f0f7ff;
}

/* 语言切换 - 默认隐藏中文内容以防止闪烁 */
.lang-zh {
    display: none !important;
}

@media (max-width: 768px) {
    body {
        -webkit-text-size-adjust: 100%; /* 防止在某些移动浏览器上字体自动缩放 */
    }

    #layout-content {
        padding: 2rem 1.5rem 2rem; /* 调整移动设备上的内边距 */
    }

    #toptitle h1 {
        font-size: 2rem;
    }

    .top-nav-bar {
        top: 18px;
        right: 15px;
        padding: 5px 8px;
        font-size: 0.85em;
    }

    #menu-toggle-btn {
        top: 15px;
        left: 15px;
        width: 40px;
        height: 40px;
    }

    #menu-toggle-btn span {
        width: 18px;
    }

    .imgtable tr {
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .imgtable td {
        padding: 0;
        text-align: center;
    }

    .imgtable img {
        margin-bottom: 1rem;
    }

    .personal-info-wrapper {
        flex-direction: column;
        gap: 1rem;
        align-items: center;
    }

    .personal-info-wrapper > p {
        text-align: left; /* 个人信息部分保持左对齐 */
    }

    .keywords-container {
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
    }

    .keyword-pill {
        font-size: 11px;
        padding: 4px 8px;
        margin: 3px 2px;
    }

    ul, ol {
        padding-left: 24px; /* 调整列表的左内边距以改善缩进 */
        text-align: left;
    }
}

/* ===== Cross-platform polish & dark mode ===== */

/* iPhone notch safe-area */
.top-nav-bar{top:calc(20px + env(safe-area-inset-top));right:calc(30px + env(safe-area-inset-right))}
#menu-toggle-btn{top:calc(15px + env(safe-area-inset-top));left:calc(15px + env(safe-area-inset-left))}
@media (max-width: 768px){
    .top-nav-bar{top:calc(18px + env(safe-area-inset-top));right:calc(15px + env(safe-area-inset-right))}
    #menu-toggle-btn{top:calc(15px + env(safe-area-inset-top));left:calc(15px + env(safe-area-inset-left))}
}

/* selection, keyboard focus, sidebar scrollbar */
::selection{background:#007bff;color:#fff}
a:focus-visible,button:focus-visible{outline:2px solid #007bff;outline-offset:2px;border-radius:4px}
#layout-menu::-webkit-scrollbar{width:8px}
#layout-menu::-webkit-scrollbar-track{background:transparent}
#layout-menu::-webkit-scrollbar-thumb{background:#c4ccd6;border-radius:4px}

/* dark mode - applied via <html data-theme="dark"> set by assets/script.js
   (follows system preference until the user toggles manually) */
:root[data-theme="dark"] ::selection{background:#2a6fd6;color:#fff}
    :root[data-theme="dark"] a:focus-visible,:root[data-theme="dark"] button:focus-visible{outline-color:#6ab0ff}
    :root[data-theme="dark"] #layout-menu::-webkit-scrollbar-thumb{background:#3a404c}

    :root[data-theme="dark"] body{background-color:#1d2129;color:#d8dde5}
    :root[data-theme="dark"] #layout-content{background-color:#1d2129;border-color:#2a2f3a;box-shadow:0 6px 18px rgba(0,0,0,.4)}
    :root[data-theme="dark"] #layout-menu{background-color:#1d2129;box-shadow:0 0 20px rgba(0,0,0,.5)}
    :root[data-theme="dark"] .top-nav-bar{background-color:#1d2129;border-color:#2a2f3a;box-shadow:0 2px 8px rgba(0,0,0,.4)}
    :root[data-theme="dark"] #menu-toggle-btn{background-color:#1d2129;box-shadow:0 4px 12px rgba(0,0,0,.5)}
    :root[data-theme="dark"] #menu-toggle-btn span{background-color:#d8dde5}
    :root[data-theme="dark"] #menu-close-btn{color:#8a93a1}
    :root[data-theme="dark"] #menu-close-btn:hover{color:#e9ecef}

    :root[data-theme="dark"] .top-nav-link{color:#6ab0ff !important}
    :root[data-theme="dark"] .top-nav-active{color:#f1f3f5 !important}
    :root[data-theme="dark"] .top-nav-divider{color:#3a404c}

    :root[data-theme="dark"] div#toptitle{border-bottom-color:#2a2f3a}
    :root[data-theme="dark"] h1,:root[data-theme="dark"] h2,:root[data-theme="dark"] h3{color:#a9c7f5;border-bottom-color:#2a2f3a}
    :root[data-theme="dark"] #toptitle h1{color:#f1f3f5;border-bottom-color:#2a2f3a}
    :root[data-theme="dark"] a{color:#6ab0ff}
    :root[data-theme="dark"] a:hover{color:#8ec2ff}
    :root[data-theme="dark"] tt{background-color:#2a2d1f}

    :root[data-theme="dark"] div.menu-category{border-bottom-color:#2a2f3a;color:#e9ecef}
    :root[data-theme="dark"] #menu-items .menu-item a{color:#c3cad4}
    :root[data-theme="dark"] #menu-items .menu-item a:hover{background-color:#007bff;color:#fff}
    :root[data-theme="dark"] #menu-items .menu-item a.current{background-color:#007bff;color:#fff}
    :root[data-theme="dark"] .menu-category-title{color:#8a93a1}

    :root[data-theme="dark"] .keyword-pill{background-color:#16273e;color:#7cc0ff;border-color:#254a73}
    :root[data-theme="dark"] .keyword-pill:hover{background-color:#1b3355;box-shadow:0 4px 8px rgba(0,0,0,.3)}

    :root[data-theme="dark"] .lang-dropdown-menu{background-color:#1d2129;border-color:#2a2f3a}
    :root[data-theme="dark"] .lang-option{color:#c3cad4 !important}
    :root[data-theme="dark"] .lang-option:hover{background-color:#262c37;color:#e9ecef !important}
    :root[data-theme="dark"] .lang-option.active{color:#6ab0ff !important;background-color:#16273e}

    :root[data-theme="dark"] table{border-color:#3a404c}
    :root[data-theme="dark"] td{border-color:#3a404c}
    :root[data-theme="dark"] tr.heading{border-bottom-color:#3a404c}

    /* inline-styled gray descriptions need a lighter tone in dark mode */
    :root[data-theme="dark"] p[style*="color:#555"]{color:#9aa4b2 !important}
    /* dark-on-transparent logos: invert to a light tone instead of a background chip */
    :root[data-theme="dark"] img[src*="szbl-logo"],:root[data-theme="dark"] img[src*="xju-logo"],:root[data-theme="dark"] img[src*="thu-logo"],:root[data-theme="dark"] img[src*="openreview"]{filter:invert(.88) hue-rotate(180deg) saturate(1.1)}

    :root[data-theme="dark"] .theme-toggle{background-color:#262c37;border-color:#2a2f3a}
    :root[data-theme="dark"] img[src*="wyq-small"]{box-shadow:0 4px 14px rgba(0,0,0,.45)}
    :root[data-theme="dark"] .copy-cite{background:#262c37;border-color:#2a2f3a;color:#c3cad4}
    :root[data-theme="dark"] .copy-cite:hover{background:#007bff;border-color:#007bff;color:#fff}

/* theme toggle button */
.theme-toggle{margin-left:8px;border:1px solid #e9ecef;background:#fff;border-radius:50%;width:32px;height:32px;padding:0;cursor:pointer;font-size:15px;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:transform .2s ease,background .2s ease}
.theme-toggle:hover{transform:scale(1.1)}

/* rounded profile photo */
img[src*="wyq-small"]{border-radius:12px;box-shadow:0 4px 12px rgba(0,0,0,.15)}

/* hanging indent so wrapped paper entries align after the first line */
#layout-content li>p{padding-left:1.6em;text-indent:-1.6em}

/* per-entry citation copy button (injected by assets/script.js) */
.copy-cite{margin-left:8px;border:1px solid #e9ecef;background:#f8f9fa;color:#495057;border-radius:6px;width:26px;height:22px;padding:0;cursor:pointer;font-size:12px;line-height:1;vertical-align:middle;transition:all .15s ease}
.copy-cite:hover{background:#007bff;border-color:#007bff;color:#fff}

/* printing always stays light */
@media print{
    body{background:#fff !important;color:#000 !important}
    #layout-content{background:#fff !important;border:none !important}
}
