/*
Theme Name: OneNav 美化版
Template: onenav
Version: 1.0
*/

/**
 * 搜索框垂直对齐
 * 有内容时沿用父主题 padding（用户反馈已居中）；
 * 仅 placeholder 可见时用 1em + calc padding，并微调 WebKit placeholder 位置。
 */
#search .search-form input.form-control.search-key,
.search-modal .search-form input.form-control.search-key {
    box-sizing: border-box !important;
    height: 50px !important;
    border-width: 0;
    padding-left: 20px !important;
    padding-right: 20px !important;
    -webkit-appearance: none;
    appearance: none;
}

#search .search-form input.form-control.search-key:not(:placeholder-shown),
.search-modal .search-form input.form-control.search-key:not(:placeholder-shown) {
    line-height: normal !important;
    padding-top: 9px !important;
    padding-bottom: 9px !important;
}

#search .search-form input.form-control.search-key:placeholder-shown,
.search-modal .search-form input.form-control.search-key:placeholder-shown {
    line-height: 1em !important;
    padding-top: calc((50px - 1em) / 2 + 1px) !important;
    padding-bottom: calc((50px - 1em) / 2 - 1px) !important;
}

#search .search-form input.form-control.search-key:placeholder-shown::placeholder,
#search .search-form input.form-control.search-key:placeholder-shown::-webkit-input-placeholder,
#search .search-form input.form-control.search-key:placeholder-shown::-moz-placeholder,
#search .search-form input.form-control.search-key:placeholder-shown:-ms-input-placeholder,
#search .search-form input.form-control.search-key:placeholder-shown::-ms-input-placeholder,
.search-modal .search-form input.form-control.search-key:placeholder-shown::placeholder,
.search-modal .search-form input.form-control.search-key:placeholder-shown::-webkit-input-placeholder,
.search-modal .search-form input.form-control.search-key:placeholder-shown::-moz-placeholder,
.search-modal .search-form input.form-control.search-key:placeholder-shown:-ms-input-placeholder,
.search-modal .search-form input.form-control.search-key:placeholder-shown::-ms-input-placeholder {
    line-height: 1em !important;
    opacity: 1;
}

/* 左侧side-bar 底色随着中间主卡片区底色变化 */
.aside-card {
    background: var(--main-bg-color) !important;
}

@media (min-width: 1200px) {
    .header-fixed {
        left: 50px;
        right: 50px;
    }
}

/* ======================= 公告移到 content-layout 顶部后的样式 ========================= */
/* 公告移到 content-layout 顶部后的样式 */
.content-layout.show-card>#bulletin_box.bulletin-in-content {
    max-width: none;
    width: 100%;
    margin-bottom: 0;
    /* 间距交给下一条规则，避免叠 margin */
    box-shadow: none;
    /* 去掉公告卡片阴影 */
}

/* 仅：公告 ↔ 紧挨的下一个 content-card = 10px */
.content-layout.show-card>#bulletin_box.bulletin-in-content+.content-card {
    margin-top: 10px;
}

/* 优化公告卡片文字颜色：悬停时显示主题颜色 */
.content-layout.show-card>#bulletin_box.bulletin-in-content .card-body a:hover {
    color: var(--theme-color) !important;
}

/* 避免 JS 执行前在搜索区闪一下（可选） */
body:not(.bulletin-relocated) .header-banner #bulletin_box {
    visibility: hidden;
}

body.bulletin-relocated .content-layout>#bulletin_box {
    visibility: visible;
}


/* ======================= 侧栏菜单 hover / 激活高亮 ========================= */

/* 默认隐藏左侧指示条 */
.aside-ul>.aside-item>.aside-btn::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 50%;
    background: var(--theme-color);
    box-shadow: 4px 0 14px 1px var(--theme-color);
    border-radius: 0 2px 2px 0;
    transition: all .3s cubic-bezier(.4, 0, .2, 1);
    opacity: 0;
}

/* 悬浮 或 已激活：显示指示条 */
.aside-ul>.aside-item:hover>.aside-btn::before,
.aside-ul>.aside-item.aside-item-active>.aside-btn::before {
    opacity: 1;
}

/* 可选：激活项文字/背景 */
.aside-ul>.aside-item.aside-item-active>.aside-btn {
    color: var(--theme-color);
    /* background-color: var(--theme-color-bg); */
    /* 注释掉父主题的背景色 */
}

/* 优化侧栏菜单悬停效果：悬停时不显示背景色     */
.aside-item>.aside-btn:hover {
    background-color: #ffffff00 !important;
}

/* 优化侧栏菜单底部悬停效果：悬停时显示背景色 */
.aside-bottom>.aside-btn:hover {
    background-color: var(--muted-blur-bg-color) !important;
}


/* 优化侧栏菜单卡片padding */
.aside-body .aside-card {
    padding: 10px 0 !important;
}

/* 优化侧栏菜单卡片padding */
.aside-body .aside-bottom,
.aside-body .aside-item {
    padding: 0 10px !important;
}

/* ======================= 优化公告卡片padding ========================= */
#bulletin_box.bulletin-in-content {
    padding: 0 !important;
    /* 去掉公告卡片padding 把通知栏视觉压缩一点*/
}

/* ======================= 优化tooltip内文字对齐 ========================= */
.tooltip-inner {
    text-align: justify !important;
    /* 两端对齐 */
    text-align-last: left !important;
    /* 最后一行左对齐 */
}

/* ======================= 优化顶栏快捷菜单 ========================= */
/* 主题顶栏 + 快捷入口共用：下拉图标与居中 */
.navbar-header .sub-menu a,
.onenav-child-nav .sub-menu a {
    display: flex;
    align-items: center;
    gap: 8px;
}

.navbar-header .sub-menu .menu-item-image,
.onenav-child-nav .sub-menu .menu-item-image {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    object-fit: contain;
    border-radius: 4px;
}

/* 自定义顶栏下拉：仅一级菜单居中（折叠「…」内二级菜单走右侧 flyout） */
.navbar-header .menu-item-type-custom.menu-item-has-children > .sub-menu,
.onenav-child-nav > .menu-item-type-custom.menu-item-has-children > .sub-menu {
    left: 50%;
    right: auto;
    transform: translateX(-50%) translateY(10px);
}

.navbar-header .menu-item-type-custom.menu-item-has-children:hover > .sub-menu,
.onenav-child-nav > .menu-item-type-custom.menu-item-has-children:hover > .sub-menu {
    transform: translateX(-50%) translateY(-2px);
}

/* 快捷入口 ul：与主题顶栏菜单同一套 flex 行布局 */
.onenav-child-header-menu .onenav-child-nav {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 0.9375rem;
    display: flex;
    flex-wrap: nowrap;
}

/* 补齐父主题 .navbar-header 样式（ul 改用 onenav-child-nav 后需子主题接管） */
.header-nav .onenav-child-nav li {
    position: relative;
    list-style: none;
    cursor: pointer;
}

.onenav-child-nav li > a {
    color: var(--main-color);
    white-space: nowrap;
    display: block;
}

.onenav-child-nav li > a:hover {
    color: var(--focus-color);
}

/* 一级顶栏链接：与父主题 .header-nav .navbar-header a 一致 */
.header-nav .onenav-child-nav > .menu-item > a {
    padding: 15px 10px;
    transition: 0.3s;
}

/* 下拉项链接：与父主题 .navbar-header .sub-menu a 一致（6px 12px，非 15px 10px） */
.onenav-child-nav .sub-menu a {
    padding: 6px 12px;
}

/* 一级菜单底部主题色指示条（与 .header-nav .navbar-header > li::after 一致） */
.header-nav .onenav-child-nav > li {
    transition: 0.3s;
}

.header-nav .onenav-child-nav > li::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 20px;
    height: 4px;
    border-radius: 4px;
    background: var(--focus-color);
    opacity: 0;
    transition: 0.3s;
    z-index: 3;
}

.onenav-child-nav > li:not(.io-menu-fold):hover::after,
.onenav-child-nav > li:not(.io-menu-fold):focus-within::after {
    opacity: 1;
}

.onenav-child-nav .sub-menu {
    visibility: hidden;
    position: absolute;
    min-width: 120px;
    background-color: var(--main-bg-color);
    padding: 8px;
    border-radius: var(--main-radius);
    box-shadow: 0 0 10px var(--main-shadow);
    opacity: 0;
    transform: translateY(10px);
    transition: 0.4s;
}

.onenav-child-nav li:hover > .sub-menu {
    visibility: unset;
    opacity: 1;
}

/* 二级及以下下拉：在右侧展开（含「…」折叠内的项，与父主题 .sub-menu .sub-menu 一致） */
.onenav-child-nav .sub-menu .sub-menu {
    left: 100%;
    top: -5px;
    right: auto;
    transform: translateY(10px);
    z-index: 13;
}

.onenav-child-nav .sub-menu .menu-item-has-children:hover > .sub-menu {
    transform: translateY(-2px);
}

.onenav-child-nav .sub-menu .menu-item-has-children > a {
    padding-right: 30px;
}

.onenav-child-nav .sub-menu .menu-item-has-children > a > .icon-arrow-b {
    position: absolute;
    right: 10px;
    top: 11px;
    transform: none;
}

.onenav-child-nav .sub-menu .menu-item-has-children:hover > a > .icon-arrow-b {
    transform: rotate(-90deg);
}

@media screen and (max-width: 1200px) {
    .onenav-child-nav .io-menu-fold .sub-menu > .menu-item-has-children > .sub-menu {
        right: calc(100% + 10px);
        left: auto;
    }
}

.onenav-child-nav .sub-menu li {
    border-radius: var(--theme-border-radius-sm);
    transition: 0.3s;
}

.onenav-child-nav .sub-menu li:hover {
    background: var(--muted-bg-color);
}

/* 下拉箭头：与父主题 .navbar-header 一致（11px，非 iconfont 默认 16px） */
.onenav-child-nav .menu-item .icon-arrow-b {
    color: var(--muted-color);
    margin-left: 5px;
    font-size: 11px;
    font-weight: normal;
    vertical-align: 0.1em;
    transition: transform 0.2s;
}

.onenav-child-nav > .menu-item:hover > a .icon-arrow-b {
    transform: rotate(45deg);
}

/* 一级菜单左侧图标：与文字同字号，避免 icon-lg 视觉偏大 */
.onenav-child-nav > .menu-item > a > .iconfont:not(.icon-arrow-b),
.onenav-child-nav > .menu-item > a > .io {
    font-size: 1em;
    font-weight: normal;
    vertical-align: -0.05em;
}

/* 下拉层叠在 header 下方内容之上，且不被容器裁切 */
.onenav-child-header-menu .onenav-child-nav > .menu-item {
    position: relative;
    z-index: 1;
}

.onenav-child-header-menu .onenav-child-nav > .menu-item:hover,
.onenav-child-header-menu .onenav-child-nav > .menu-item:focus-within {
    z-index: 12;
}

/* 一级下拉在 ::after 指示条之下，指示条保持可见 */
.onenav-child-nav > .menu-item > .sub-menu {
    top: 100%;
    z-index: 2;
}

/* 「…」折叠内：二级向右 flyout，卡片间距 5px，首项与父项 Y 轴对齐 */
.onenav-child-nav .io-menu-fold .sub-menu > .menu-item-has-children > .sub-menu {
    left: calc(100% + 10px);
    right: auto;
    /* 抵消 sub-menu padding-top(8px)，使首项 a 与父项 a 顶边齐平 */
    top: -8px;
    transform: none;
    z-index: 13;
}

.onenav-child-nav .io-menu-fold .sub-menu > .menu-item-has-children:hover > .sub-menu {
    transform: none;
}



/* ======================= 顶栏 Logo 不被 Flex 压扁 ========================= */
.navbar-logo {
    flex-shrink: 0;
}

.navbar-logo .logo-expanded {
    display: inline-flex;
    flex-shrink: 0;
}

.navbar-logo .logo-expanded img {
    width: auto;
    height: 36px;
    max-width: none;
    max-height: none;
    object-fit: contain;
}

@media (max-width: 767.98px) {
    .navbar-logo .logo-expanded img {
        height: 30px;
        /* 与父主题移动端 max-height: 30px 一致 */
    }
}

/* ======================= 顶栏 flex 分区（主题菜单 / 快捷入口 / 右侧固定） ========================= */

/* 顶栏 nav：全宽贴边，仅 10px padding；宽屏下不受 .container max-width + margin:auto 居中限制 */
.container-body:not(.full-container) nav.container-header.container,
.header-nav nav.container-header.container {
    max-width: none;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
}

.header-nav,
.container-header {
    overflow: visible;
}

/* 主题菜单 ul + 快捷入口 ul：单行，超出由各自 JS「...」收纳 */
.header-nav .navbar-header,
.onenav-child-header-menu .onenav-child-nav {
    flex-wrap: nowrap;
}

/* 中间弹性占位：把右侧顶到 header 右边 */
.container-header .flex-fill {
    min-width: 0;
    flex: 1 1 auto;
}

/* 主题自带菜单容器：不被 flex 压扁，交给父主题 io_nav_auto_fold */
.container-header > .navbar-header-menu:first-of-type {
    flex-shrink: 0;
    min-width: 0;
    overflow: visible;
}

/* 快捷入口容器：允许收缩；overflow 可见以免下拉被 header 裁切 */
.container-header > .onenav-child-header-menu {
    flex: 0 1 auto;
    min-width: 0;
    overflow: visible;
}

/* 右侧固定：关注我们 + 搜索 + 移动汉堡，不参与折叠 */
.container-header > .header-menu-item.toggle-sidebar.wechat,
.container-header > .header-tools,
.container-header > .menu-btn {
    flex-shrink: 0;
}

/* ======================= footer 宽度与主卡片区对齐 ========================= */
.container-body:not(.full-container) .home-container,
.container-body:not(.full-container) .main-footer > .switch-container.container-footer.container {
    max-width: var(--main-max-width) !important;
    width: min(100%, var(--main-max-width)) !important;
    margin-inline: auto;
    box-sizing: border-box;
    /* padding 不写，沿用父主题 .container / .ioui-content 的 10px */
}

.container-body.full-container .home-container,
.container-body.full-container .main-footer > .switch-container.container-footer.container-fluid {
    max-width: var(--home-max-width) !important;
    width: min(100%, var(--home-max-width)) !important;
    margin-inline: auto;
    box-sizing: border-box;
}

/* 内层白底：取消 Bootstrap .row 负 margin，防止溢出撑宽 */
.main-footer .container-footer > .footer.row {
    margin-inline: 0;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

footer {
    padding: 0 !important;
    margin-top: 20px !important;
    margin-bottom: 10px !important;
}


/* canvas 特效：空白区域鼠标穿透到 iframe，搜索等控件仍可点击 */
.header-big.canvas-fx .search-container {
    pointer-events: none;
}

.header-big.canvas-fx .search-container a,
.header-big.canvas-fx .search-container button,
.header-big.canvas-fx .search-container input,
.header-big.canvas-fx .search-container select,
.header-big.canvas-fx .search-container textarea,
.header-big.canvas-fx .search-container .search-box-big,
.header-big.canvas-fx .search-container .search-list-menu,
.header-big.canvas-fx .search-container .bulletin-big,
.header-big.canvas-fx .search-container .card,
.header-big.canvas-fx .search-container [tabindex] {
    pointer-events: auto;
}

.text-muted a {
    color: var(--main-color) !important;
}

/* 版权挪到介绍文字下方后：去掉全宽居中的大外边距 */
body.footer-copyright-relocated .main-footer .footer-copyright {
    margin: 1rem 0 0 !important;   /* 替代原来的 m-3 */
    text-align: inherit;             /* 跟随左侧列左对齐 */
}

/* 页脚中间列（col-md-5）文字居中，不影响其它列 */
.main-footer .footer.row > .col-12.col-md-5 {
    text-align: center !important;
}

/* 页脚导航菜单：桌面端也居中（覆盖 justify-content-md-start） */
.main-footer .footer.row > .col-12.col-md-5 .footer-nav-links {
    justify-content: center !important;
}

/* 友情链接区块自带 text-left，需单独覆盖 */
.main-footer .footer.row > .col-12.col-md-5 #friendlink,
.main-footer .footer.row > .col-12.col-md-5 #friendlink .friend-link {
    text-align: center !important;
}

/* 页脚三列桌面端强制 3 等分（覆盖 Bootstrap col-md-4/5/3） */
@media (min-width: 768px) {
    .main-footer .container-footer > .footer.row {
        display: flex !important;
        flex-wrap: nowrap !important;
    }

    .main-footer .container-footer > .footer.row > .col-12.col-md-4,
    .main-footer .container-footer > .footer.row > .col-12.col-md-5,
    .main-footer .container-footer > .footer.row > .col-12.col-md-3 {
        flex: 0 0 33.333333% !important;
        max-width: 33.333333% !important;
        width: 33.333333% !important;
        min-width: 0;
    }

    /* 若版权块仍在 row 下（未移进第一列），避免占第 4 列宽度 */
    .main-footer .container-footer > .footer.row > .footer-copyright {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        width: 100% !important;
    }

    body.footer-copyright-relocated .main-footer .container-footer > .footer.row > .footer-copyright {
        display: none !important;
    }
}

.footer-mini-img {
    width: 130px;
    margin: 0 10px;
    text-align: center;
    vertical-align: text-top;
    display: inline-block;
}