@charset "utf-8";
@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@500&family=IBM+Plex+Sans:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;700&display=swap");

:root{
  --bg:#eef3f6;
  --surface:#ffffff;
  --text:#1a2332;
  --muted:#6b7a8a;
  --line:#d9e2ea;
  --accent:#0f766e;
  --accent-soft:#d9f5ef;
  --accent-deep:#115e59;
  --radius:6px;
  --shadow:0 6px 20px rgba(26,35,50,.05);
  --width:1400px;
  --left:1040px;
  --right:340px;
  --gap:14px;
  --module:15px;
  --header-h:72px;
  --font:"IBM Plex Sans","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",sans-serif;
  --mono:"IBM Plex Mono","Cascadia Mono","Consolas","Noto Sans SC",monospace;
}

*{box-sizing:border-box;}
html{
  scroll-behavior:smooth;
  scroll-padding-top:88px; /* 固定导航高度，锚点不被挡住 */
  background:var(--accent); /* 顶栏上方若有 1px 缝，露导航色而不是白条 */
  overflow-x:clip;
}
body{
  margin:0;
  padding:0;
  padding-top:var(--header-h); /* 顶栏始终 fixed，预留高度避免开滚时整页上跳 */
  background:
    radial-gradient(1200px 480px at 12% -8%,rgba(15,118,110,.08),transparent 60%),
    radial-gradient(900px 420px at 92% 4%,rgba(14,116,144,.06),transparent 55%),
    var(--bg);
  color:var(--text);
  font-family:var(--font);
  font-size:15px;
  line-height:1.7;
  overflow-x:clip;
  min-width:0;
}
a{color:inherit;text-decoration:none;transition:color .2s ease,background .2s ease,border-color .2s ease;}
img{max-width:100%;height:auto;vertical-align:middle;}
button,input{font-family:inherit;}

/* 全站统一版心：只定外宽，不在这里加左右 padding
   否则 .box.width（底部链接）会比 .container 里的左右栏白盒更宽一截 */
.width{
  width:var(--width);
  max-width:calc(100% - 40px);
  min-width:0;
  margin-left:auto;
  margin-right:auto;
  padding-left:0;
  padding-right:0;
  box-sizing:border-box;
}

.bg-color{
  background:var(--accent);
  box-shadow:0 2px 12px rgba(15,118,110,.18);
  min-width:0;
  margin:0;
  border:0;
  transition:box-shadow .25s ease;
}
.bg-color.ui-fixed,
.bg-color.ui-fixed-top{
  position:fixed !important; /* 一开始就固定，别等滚动时再切，避免简介区“卡一下” */
  top:0 !important;
  left:0 !important;
  right:0 !important;
  width:100% !important;
  max-width:none !important;
  box-sizing:border-box;
  z-index:100;
  overflow:visible; /* 折叠菜单要从顶栏下方伸出 */
}
.bg-color.is-scrolled{
  box-shadow:0 8px 24px rgba(15,118,110,.28);
}
.bg-white{background:#fff;}

/* Header：接近旧模板的通栏导航 */
.header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  height:72px;
  padding:0;
  overflow:visible;
}
.header .header-left{display:flex;align-items:center;gap:12px;min-width:0;flex:1;}
.header .logo{flex:0 0 auto;max-width:220px;}
.header .logo img{max-height:52px;display:block;}
.header .ui-nav{
  min-width:0;
  flex:1 1 auto;
  overflow:visible; /* 必须可见，否则下拉会被裁掉 */
}
.header .ui-nav > ul{
  display:flex;
  flex-wrap:nowrap;
  margin:0;padding:0;list-style:none;
  white-space:nowrap;
}
.header .ui-nav > ul > li{position:relative;flex:0 0 auto;z-index:1;}
.header .ui-nav > ul > li:hover{z-index:50;}
.header .ui-nav > ul > li > a{
  display:block;color:#fff;padding:24px 12px;font-size:15px;font-weight:500;
  white-space:nowrap;letter-spacing:.02em;
  position:relative;
}
/* 用 li:hover 而不是 a:hover，鼠标移到下拉时一级菜单不闪 */
.header .ui-nav > ul > li:hover > a,
.header .ui-nav > ul > li > a:hover{
  color:#a7f3d0;background:rgba(255,255,255,.08);
}
.header .ui-nav > ul > li.active > a{
  color:#ecfdf5;
  background:rgba(255,255,255,.1);
}
.header .ui-nav > ul > li.active > a:after{
  content:"";position:absolute;left:12px;right:12px;bottom:10px;height:2px;
  border-radius:2px;background:#99f6e4;
}
/* 下拉贴导航底边：上沿直角、下沿圆角；略重叠避免缝隙闪烁 */
.header .ui-nav > ul > li > ul{
  position:absolute;left:0;top:calc(100% - 1px);
  min-width:168px;padding:6px 0;
  margin-top:0;
  border-radius:0 0 6px 6px;
  background:#fff;
  border:1px solid var(--line);
  border-top:0;
  box-shadow:0 10px 24px rgba(26,35,50,.1);
  display:block;
  z-index:60;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:none !important;
  transition:none;
  list-style:none;
  font-size:14px;
}
.header .ui-nav > ul > li:hover > ul,
.header .ui-nav > ul > li:focus-within > ul{
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto;
}
/* 向上多盖一层热区，穿越边界时不断开悬停 */
.header .ui-nav > ul > li > ul:before{
  content:"";
  position:absolute;left:0;right:0;top:-12px;
  height:12px;
  background:transparent;
}
.header .ui-nav > ul > li > ul > li{display:block;width:100%;float:none;}
.header .ui-nav > ul > li > ul > li > a,
.header .ui-nav > ul > li.active > ul > li > a{
  display:block;
  color:var(--text);
  padding:9px 14px;
  margin:0 6px;
  border-radius:6px;
  font-size:14px;font-weight:500;
  text-align:left;
  white-space:nowrap;
  background:transparent;
  letter-spacing:.01em;
}
.header .ui-nav > ul > li > ul > li > a:hover,
.header .ui-nav > ul > li.active > ul > li > a:hover{
  color:var(--accent-deep);
  background:var(--accent-soft);
}
.header .ui-nav > ul > li > ul > li.active > a,
.header .ui-nav > ul > li.active > ul > li.active > a{
  color:var(--accent-deep);
  background:var(--accent-soft);
  font-weight:600;
}
.header .header-right{flex:0 0 auto;min-width:0;}
.header .search{display:flex;align-items:center;width:100%;min-width:0;}
.header .search input[type=text]{
  width:220px;max-width:100%;height:40px;
  border:0;border-radius:999px;
  background:rgba(255,255,255,.16);color:#fff;
  padding:0 42px 0 14px;font-size:14px;outline:none;
  line-height:normal; /* 避免和 height 叠出裁切 */
  box-sizing:border-box;
}
.header .search input[type=text]::placeholder{color:rgba(255,255,255,.75);opacity:1;}
.header .search button[type=submit]{
  width:32px;height:32px;margin-left:-38px;border:0;border-radius:50%;
  background:#99f6e4;color:var(--accent-deep);cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  flex:0 0 auto;
}
.nav-toggle{
  display:none;width:40px;height:40px;border:0;border-radius:var(--radius);
  background:rgba(255,255,255,.16);color:#fff;align-items:center;justify-content:center;cursor:pointer;
}

.bg-white .ui-nav ul li a{color:var(--text);}
.bg-white .header .ui-nav ul li a:hover,
.bg-white .header .ui-nav ul li.active a{color:var(--accent);}
.bg-white .header .search input[type=text]{
  background:#fff;border:1px solid var(--line);color:var(--text);
}
.bg-white .header .search input[type=text]::placeholder{color:#99a;}
.bg-white .header .search button[type=submit]{background:var(--accent);color:#fff;}

/* 锚点避开固定导航 */
#latest{
  scroll-margin-top:88px;
}

/* 首页简介：与正文同款白卡片，不和绿色菜单抢通栏 */
.home-intro{
  margin:0;
}
.home-intro-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.home-intro-copy{min-width:0;flex:1;}
.home-intro-desc{
  margin:0;
  max-width:42em;
  font-size:15px;
  line-height:1.7;
  color:var(--muted);
}
.home-intro-actions{
  display:flex;flex-wrap:wrap;gap:10px;
  flex:0 0 auto;
}
.home-btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:38px;padding:0 16px;
  border-radius:var(--radius);font-size:14px;font-weight:600;
  transition:transform .2s ease,background .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.home-btn:hover{transform:translateY(-1px);}
.home-btn-primary{
  background:var(--accent);color:#fff;
  box-shadow:0 4px 14px rgba(15,118,110,.18);
}
.home-btn-primary:hover{background:var(--accent-deep);color:#fff;}
.home-btn-ghost{
  background:#fff;color:var(--accent-deep);
  border:1px solid rgba(15,118,110,.28);
}
.home-btn-ghost:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-deep);}

.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;}
.section-head .ui-menu{margin:0;}
.section-head-desc{margin:6px 0 0;color:var(--muted);font-size:14px;}

/* 模块间距略收紧 */
.ui-mt-20{margin-top:var(--module) !important;}
.ui-mb-20{margin-bottom:var(--module) !important;}
.ui-mt-30{margin-top:18px !important;}
.ui-mt-15{margin-top:15px !important;}
.ui-mb-15{margin-bottom:15px !important;}
.ui-mt-10{margin-top:10px !important;}
.container-right .box.ui-mt-20,
.container-right .ui-mt-20{margin-top:15px !important;}

/* 轻入场：滚入即播、无等待；首屏 is-done 不播 */
html.motion-on [data-reveal].is-in:not(.is-done){
  animation:revealUp .35s ease both;
  animation-delay:var(--reveal-delay,0s);
}
html.motion-on [data-reveal].is-done{
  animation:none !important;
  opacity:1;
  transform:none;
}
@keyframes revealUp{
  from{opacity:.35;transform:translateY(6px);}
  to{opacity:1;transform:none;}
}

.nicebox a.ui-card{color:inherit;text-decoration:none;cursor:pointer;}
.nicebox .ui-card,
.boxlist .ui-card,
.ui-show-image .ui-card{
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.nicebox .ui-card:hover,
.boxlist .ui-card:hover,
.ui-show-image .ui-card:hover{
  transform:translateY(-3px);
  box-shadow:0 10px 22px rgba(26,35,50,.08);
  border-color:rgba(15,118,110,.3);
}
.nicebox .ui-card:hover .ui-card-image img{
  transform:scale(1.04);
}
.nicebox .ui-card:hover .ui-card-title{
  color:var(--accent-deep);
}

.ui-media-list > .ui-media.is-in{
  transition:background-color .2s ease;
}
.ui-media-list > .ui-media.is-in:hover{
  background:rgba(15,118,110,.035);
}
.ui-media-header a{transition:color .2s ease;}
.box{transition:box-shadow .25s ease,border-color .25s ease;}
.box.is-in:hover{
  border-color:rgba(15,118,110,.2);
  box-shadow:0 8px 20px rgba(26,35,50,.04);
}
.link a,.label a{
  transition:border-color .2s ease,color .2s ease,background .2s ease;
}

/* 悬停提示气泡：收小且标题单行不换行 */
.ui-tips-show{
  padding:5px 9px !important;
  font-size:12px !important;
  line-height:1.4 !important;
  max-width:480px !important;
  white-space:nowrap !important;
  word-break:keep-all !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  border-radius:6px !important;
  box-shadow:0 4px 12px rgba(26,35,50,.08) !important;
}
/* 触屏没有悬停，标题气泡没必要还容易挡操作 */
@media (hover:none),(pointer:coarse){
  .ui-tips-show{display:none !important;}
}
.ui-tips-show:after{
  width:7px !important;
  height:7px !important;
}

@media (prefers-reduced-motion:reduce),html.motion-off{
  html{scroll-behavior:auto;}
  html.motion-on [data-reveal].is-in{
    animation:none !important;
    opacity:1;transform:none;
  }
  .nicebox .ui-card:hover,
  .boxlist .ui-card:hover,
  .ui-show-image .ui-card:hover{transform:none;}
  .nicebox .ui-card:hover .ui-card-image img{transform:none;}
  .box.is-in:hover{box-shadow:none;}
}

/* Banner */
.banner-wrap{margin:15px auto;}
.banner{
  width:100%;border-radius:var(--radius);overflow:hidden;background:#fff;
  border:1px solid var(--line);
}
.banner .ui-carousel-item a{
  display:block;width:100%;height:auto;aspect-ratio:21/8;overflow:hidden;background:#e8eef2;
}
.banner .ui-carousel-item a img{
  width:100%;height:100%;object-fit:cover;object-position:center;
  display:block;
}
.banner .ui-carousel-page{bottom:18px;}
.banner .ui-carousel-page li{height:8px;width:8px;border-radius:50%;transition:all .3s;}
.banner .ui-carousel-page li.active{width:28px;background:var(--accent);}
.ui-carousel-prev,.ui-carousel-next{width:100px;}
.ui-carousel-prev-icon,.ui-carousel-next-icon{
  background:rgba(0,0,0,.2);width:48px;height:48px;padding:14px;border-radius:50%;position:relative;
}
.ui-carousel-next-icon:after,.ui-carousel-prev-icon:after{
  display:block;position:absolute;content:"";width:16px;height:16px;top:16px;left:16px;
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e");
}
.ui-carousel-prev-icon:after{
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e");
}

/* 推荐卡片：固定同宽四列 + 16:10 封面 */
.nicebox{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:var(--gap);
  margin-top:15px;
}
/* 推荐区放进白盒后，卡片不再额外加重边框感 */
.box .nicebox .ui-card{
  box-shadow:none;
  background:#f8fbfa;
}
.box .nicebox .ui-card:hover{
  background:#fff;
}
.nicebox .ui-col-3{
  flex:none !important;max-width:none !important;width:auto !important;margin:0 !important;padding:0 !important;
}
.nicebox .ui-card,
.boxlist .ui-card,
.ui-show-image .ui-card{
  border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff;
  height:100%;display:flex;flex-direction:column;
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.nicebox .ui-card-image,
.boxlist .ui-card-image,
.ui-show-image .ui-card-image{
  width:100%;aspect-ratio:16/10;height:auto !important;overflow:hidden;background:#e8eef2;
}
.nicebox .ui-card-image a,
.boxlist .ui-card-image a,
.ui-show-image .ui-card-image a,
.ui-media-img a{display:block;width:100%;height:100%;}
.nicebox .ui-card-image img,
.boxlist .ui-card-image img,
.ui-show-image .ui-card-image img,
.ui-media-img img{
  display:block;width:100% !important;height:100% !important;max-width:none !important;
  object-fit:cover;object-position:center;border:0;padding:0;border-radius:0;
  transition:transform .45s cubic-bezier(.22,.7,.25,1);
}
.nicebox .ui-card-image:hover img,
.boxlist .ui-card-image:hover img,
.ui-show-image .ui-card-image:hover img,
.ui-media-img:hover img{transform:scale(1.06);}
.nicebox .ui-card-body,.boxlist .ui-card-body{padding:12px 14px 14px;border:0;flex:1;}
.nicebox .ui-card-title,.boxlist .ui-card-title{
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;
  overflow:hidden;height:auto;font-weight:600;line-height:1.4;
}
.nicebox .ui-card-title{transition:color .25s ease;}
.nicebox .ui-card-text,.boxlist .ui-card-text{
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;
  overflow:hidden;height:auto;color:var(--muted);font-size:14px;line-height:1.55;margin-top:4px;
}

.boxlist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);}
.boxlist .ui-col-4{flex:none !important;max-width:none !important;width:auto !important;margin:0 !important;}

/* 主栏 + 侧栏：跟在 .width 里，不再单独设总宽，避免左右相加溢出 */
.container{
  display:flex;
  flex-wrap:nowrap;
  align-items:flex-start;
  gap:var(--gap);
}
.container .container-left{
  flex:1 1 auto;
  width:auto;
  min-width:0;
}
.container .container-right{
  width:var(--right);
  flex:0 0 var(--right);
  margin-left:0;
  position:sticky;
  top:88px; /* 避开固定导航 */
  align-self:flex-start;
  /* 不要 max-height + overflow:auto：接近一屏时会吃掉滚轮，整页闪但不真滚 */
}

.box{
  padding:16px 18px;background:var(--surface);border-radius:var(--radius);
  border:1px solid var(--line);position:relative;
}
.ui-menu-color .ui-menu-name{
  color:var(--accent-deep);border-bottom-color:var(--accent);font-weight:700;font-size:17px;
}
.ui-menu-more a{color:var(--accent-deep);}

.ui-media-list{margin:0;padding:0;list-style:none;}
.ui-media-list > .ui-media{
  display:flex !important;align-items:stretch;gap:14px;
  padding:12px 8px;margin:0 -8px;border-bottom:1px solid var(--line);
  border-radius:var(--radius);
  transition:background-color .22s ease,transform .22s ease;
}
.ui-media-list > .ui-media:last-child{border-bottom:0;padding-bottom:2px;}
.ui-media-img{
  flex:0 0 160px;width:160px;aspect-ratio:16/10;overflow:hidden;
  border-radius:6px;background:#e8eef2;
}
.ui-media-body{flex:1;min-width:0;display:flex;flex-direction:column;}
.ui-media-header{font-size:17px;font-weight:650;line-height:1.45;}
.ui-media-header a:hover{color:var(--accent-deep);}
.ui-media-text{height:44px;overflow:hidden;color:var(--muted);font-size:14px;margin-top:6px;}
.ui-media-other{
  margin-top:auto;padding-top:10px;color:var(--muted);font-size:14px;
  display:flex !important;flex-wrap:wrap;align-items:center;gap:8px 10px;
}
.ui-media-other > .ui-col-8,
.ui-media-other > .ui-col-4{
  flex:none !important;max-width:none !important;width:auto !important;
  padding:0 !important;margin:0 !important;
}
.ui-media-other > .ui-col-8{
  flex:1 1 180px !important;min-width:0;
  display:flex;flex-wrap:wrap;align-items:center;gap:6px;
}
.ui-media-other > .ui-col-4{
  flex:0 0 auto !important;margin-left:auto !important;
  text-align:right !important;
}
.post-date{
  display:inline-block;
  font-family:var(--mono);
  font-size:12px;
  font-weight:500;
  letter-spacing:.04em;
  color:#8a9aaa;
  line-height:1;
  padding:5px 0 5px 10px;
  border-left:2px solid rgba(15,118,110,.25);
  white-space:nowrap;
}
/* Tags：胶囊标签，不被框架 .ui-btn overflow 裁字 */
.ui-media-other .ui-btn,
.ui-show-tags a,
.label a{
  display:inline-flex !important;
  align-items:center;justify-content:center;
  height:28px !important;
  line-height:1 !important;
  padding:0 11px !important;
  margin:0 !important;
  font-size:14px !important;
  font-weight:500;
  border-radius:999px !important;
  border:1px solid rgba(15,118,110,.22) !important;
  border-color:rgba(15,118,110,.22) !important;
  color:var(--accent-deep) !important;
  background:var(--accent-soft) !important;
  overflow:hidden !important;
  max-width:100%;
  white-space:nowrap;
  text-overflow:ellipsis;
  box-sizing:border-box !important;
  vertical-align:middle;
}
.label{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
}
.ui-show-tags{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
}
/* 侧栏 / 标签页略大一档 */
.container-right .label a,
.box .label a{
  height:30px !important;
  padding:0 12px !important;
  font-size:14px !important;
  max-width:100%;
}
.ui-media-other .ui-btn:hover,
.ui-show-tags a:hover,
.label a:hover{background:var(--accent) !important;color:#fff !important;border-color:var(--accent) !important;}

.ui-media-list-min .ui-media{padding:10px 0;gap:12px;}
.ui-media-list-min .ui-media-img{flex-basis:96px;width:96px;}
.ui-media-list-min .ui-media .ui-media-header{font-size:14px;max-height:40px;overflow:hidden;}
.ui-media-list-min .ui-media-text{height:20px;font-size:12px;}

.link{margin-top:14px;display:flex;flex-wrap:wrap;gap:8px;}
.link a{
  display:inline-flex;align-items:center;height:28px;padding:0 10px;
  border:1px solid var(--line);border-radius:6px;background:#fff;font-size:14px;
}
.link a:hover{border-color:var(--accent);color:var(--accent-deep);}

.copyright{
  background:#fff;min-width:0;padding:28px 0 20px;margin-top:var(--module);
  line-height:1.8;border-top:1px solid var(--line);color:var(--muted);font-size:14px;
}
.footnav{color:var(--muted);margin-bottom:6px;}
.footnav a{color:var(--muted);margin:0 8px;}
.footnav a:hover{color:var(--accent-deep);}
.copyright a{color:var(--muted);}
.copyright a:hover{color:var(--accent-deep);}

/* 右侧浮条：随窗体固定在侧边中部；勿 overflow:hidden，否则悬停气泡被裁切 */
.ui-sidebar{
  position:fixed;right:0;top:50%;bottom:auto;left:auto;
  transform:translateY(-50%);
  display:block;z-index:200;
}
.ui-sidebar ul{
  margin:0;padding:0;list-style:none;
  border-radius:6px 0 0 6px;
  border:0;background:transparent;box-shadow:none;overflow:visible;
}
.ui-sidebar ul li{position:relative;z-index:200;margin-top:-1px;}
.ui-sidebar ul li a{
  width:48px;line-height:46px;text-align:center;
  background:#fff;border:1px solid var(--line);color:var(--accent);
  transition:background .18s ease,color .18s ease,border-color .18s ease;
}
.ui-sidebar ul li a i{font-size:20px;}
.ui-sidebar ul li:first-child,
.ui-sidebar ul li:first-child a{border-radius:6px 0 0 0;}
.ui-sidebar ul li:last-child,
.ui-sidebar ul li:last-child a{border-radius:0 0 0 6px;}
.ui-sidebar ul li div{
  position:absolute;top:2px;right:56px;
  opacity:0;visibility:hidden;pointer-events:none !important;z-index:1;
  min-width:96px;padding:0 12px;line-height:42px;
  font-size:14px;color:var(--text);white-space:nowrap;text-align:center;
  background:#fff;border:1px solid var(--line);border-radius:6px;
  box-shadow:var(--shadow);transition:opacity .18s ease,visibility .18s ease;
}
.ui-sidebar ul li div:after{
  content:"";position:absolute;right:-5px;top:50%;
  width:8px;height:8px;background:#fff;border:1px solid var(--line);
  border-bottom:0;border-right:0;transform:translateY(-50%) rotate(135deg);
  pointer-events:none;
}
.ui-sidebar ul li:hover div{opacity:1;visibility:visible;right:56px;}
/* 用 li:hover 而不是 a:hover，避免气泡出现时悬停状态来回闪 */
.ui-sidebar ul li:hover a,
.ui-sidebar ul li a:hover,
.ui-sidebar-color ul li:hover a,
.ui-sidebar-color ul li a:hover,
.ui-sidebar-color ul li.active a{
  background:var(--accent) !important;
  border-color:var(--accent) !important;
  border-bottom-color:var(--accent) !important;
  color:#fff !important;
}
.ui-sidebar-color ul li a{color:var(--accent);}

.ui-text-color{color:var(--muted) !important;}
.ui-bread{
  padding:0;margin:14px auto 0;color:var(--muted);font-size:14px;line-height:1.4;
}
.ui-bread ul{
  list-style:none;margin:0;padding:0;
  display:flex;flex-wrap:wrap;align-items:center;gap:0;
}
.ui-bread ul li{
  display:inline-flex;align-items:center;color:var(--muted);
}
.ui-bread ul li + li:before{
  content:"/";padding:0 10px;color:#b7c3cf;
  font-family:var(--font);font-weight:400;
}
.ui-bread a{
  color:var(--muted);text-decoration:none;
  transition:color .15s ease;
}
.ui-bread a:hover{color:var(--accent-deep);}
/* 当前页：略加深，弱化成路径终点，不抢标题 */
.ui-bread ul li:last-child a{
  color:#5b6b7a;font-weight:500;pointer-events:none;cursor:default;
}
.ui-flag{width:88px;height:88px;display:block;overflow:hidden;position:absolute;left:0;top:0;border-radius:6px 0 0 0;}
.ui-flag i{
  color:#fff;width:120px;height:120px;line-height:190px;text-align:center;position:absolute;
  font-style:normal;top:-60px;left:-60px;transform:rotate(-45deg);background:var(--accent);font-size:14px;
}
.ui-nice{
  display:inline-block;vertical-align:0.12em;margin-right:10px;padding:0 8px;height:22px;line-height:22px;
  font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--accent-deep);
  background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 28%,transparent);border-radius:6px;
}
.ui-show-title{padding:6px 0 16px;border-bottom:1px solid var(--line);margin-bottom:8px;}
.ui-show-title h1{font-size:28px;line-height:1.35;margin:4px 0 10px;font-weight:700;}
.ui-show-meta{
  display:flex;flex-wrap:wrap;align-items:center;gap:0 2px;
  font-size:14px;color:var(--muted);line-height:1.6;
}
.ui-show-meta-sep{color:#b7c3cf;padding:0 6px;user-select:none;}
.ui-show-meta-cate{color:var(--muted);text-decoration:none;}
.ui-show-meta-cate:hover{color:var(--accent-deep);}
.ui-show-hits{font-variant-numeric:tabular-nums;color:var(--muted);}
.ui-show-image .ui-row{display:grid !important;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;}
.ui-show-image .ui-col-3{flex:none !important;max-width:none !important;width:auto !important;margin:0 !important;}
.ui-show-body{
  padding:18px 0 8px;line-height:1.85;font-size:16px;color:var(--text);
  word-break:break-word;overflow-wrap:anywhere;
}
.ui-show-body > *:first-child{margin-top:0;}
.ui-show-body > *:last-child{margin-bottom:0;}
.ui-show-body *{max-width:100%;}
.ui-show-body p{font-size:16px;line-height:1.85;margin:0 0 1.05em;}
.ui-show-body h2,.ui-show-body h3,.ui-show-body h4{
  color:var(--text);font-weight:700;line-height:1.4;
  margin:1.55em 0 .7em;scroll-margin-top:96px;
}
.ui-show-body h2{font-size:22px;padding-bottom:.35em;border-bottom:1px solid var(--line);}
.ui-show-body h3{font-size:19px;}
.ui-show-body h4{font-size:17px;color:var(--accent-deep);}
.ui-show-body a{color:var(--accent-deep);text-decoration:underline;text-underline-offset:3px;}
.ui-show-body a:hover{color:var(--accent);}
.ui-show-body ul,.ui-show-body ol{margin:0 0 1.05em;padding-left:1.35em;}
.ui-show-body li{margin:0 0 .4em;line-height:1.75;}
.ui-show-body li > ul,.ui-show-body li > ol{margin:.35em 0 0;}
.ui-show-body blockquote{
  margin:0 0 1.15em;padding:12px 16px 12px 18px;
  border-left:3px solid var(--accent);border-radius:0 6px 6px 0;
  background:var(--accent-soft);color:var(--accent-deep);
}
.ui-show-body blockquote p{margin:0 0 .55em;}
.ui-show-body blockquote p:last-child{margin-bottom:0;}
.ui-show-body hr{
  border:0;height:1px;margin:1.6em 0;background:var(--line);
}
.ui-show-body table{
  width:100%;border-collapse:collapse;margin:0 0 1.2em;
  font-size:15px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);
}
.ui-show-body th,.ui-show-body td{
  padding:10px 12px;border:1px solid var(--line);text-align:left;vertical-align:top;
}
.ui-show-body th{background:#f4faf8;color:var(--accent-deep);font-weight:600;}
.ui-show-body tr:nth-child(even) td{background:#fafcfd;}
.ui-show-body img{
  display:block;max-width:100%;height:auto;margin:14px auto;
  border-radius:var(--radius);border:1px solid var(--line);
}
.ui-show-body pre,.ui-show-body code{
  font-family:var(--mono),ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  border-radius:6px;
}
.ui-show-body code{
  padding:.12em .4em;font-size:.9em;
  background:#eef6f4;color:var(--accent-deep);border:1px solid #d7ebe6;
}
.ui-show-body pre{
  padding:14px 16px;overflow:auto;margin:0;
  background:#0b1220;color:#e6edf7;border:1px solid #1e293b;line-height:1.65;
}
.ui-show-body pre code{
  padding:0;font-size:14px;background:transparent;color:inherit;border:0;
}
.ui-show-body a.ui-lightbox{display:block;border:0;text-decoration:none;}
.ui-show-body a.ui-lightbox img{cursor:zoom-in;}
.code-block{
  position:relative;margin:0 0 1.2em;
}
.code-copy{
  position:absolute;top:8px;right:8px;z-index:2;
  height:28px;padding:0 10px;border:1px solid rgba(255,255,255,.18);
  border-radius:6px;background:rgba(15,23,42,.72);color:#e2e8f0;
  font-size:14px;line-height:28px;cursor:pointer;
  opacity:0;transition:opacity .18s ease,background .18s ease,color .18s ease;
}
.code-block:hover .code-copy,
.code-copy:focus{opacity:1;}
.code-copy:hover{background:var(--accent);border-color:var(--accent);color:#fff;}
.code-copy.is-done{opacity:1;background:#0f766e;border-color:#0f766e;color:#fff;}
.ui-show-body figure{margin:0 0 1.2em;}
.ui-show-body figcaption{margin-top:8px;text-align:center;color:var(--muted);font-size:14px;}
.ui-show-tags a{height:28px !important;padding:0 11px !important;}
.ui-show-share{text-align:right;color:var(--muted);}
.ui-show-share a{
  display:inline-flex;align-items:center;justify-content:center;
  width:36px;height:36px;border-radius:50%;border:1px solid var(--line);margin-left:8px;
}
.ui-show-share a:nth-child(1){color:#1890FF;}
.ui-show-share a:nth-child(2){color:#ED4014;}
.ui-show-share a:nth-child(3){color:#19BE6B;}

/* 上下篇：卡片式，替代旧角标 */
.post-nav{
  display:grid;grid-template-columns:1fr 1fr;gap:12px;
}
.post-nav-item{
  display:flex;flex-direction:column;gap:6px;min-width:0;
  padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);
  background:var(--surface);text-decoration:none;color:inherit;
  transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
a.post-nav-item:hover{
  border-color:rgba(15,118,110,.35);
  box-shadow:0 8px 18px rgba(26,35,50,.05);
  transform:translateY(-1px);color:inherit;
}
.post-nav-item.is-empty{opacity:.72;cursor:default;}
.post-nav-label{
  font-size:14px;color:var(--muted);letter-spacing:.02em;
}
.post-nav-next{text-align:right;align-items:flex-end;}
.post-nav-title{
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;
  overflow:hidden;font-size:15px;font-weight:600;line-height:1.45;color:var(--text);
}
a.post-nav-item:hover .post-nav-title{color:var(--accent-deep);}
.ui-collapse-menu-title{padding-left:10px;border-radius:var(--radius);}
.ui-collapse-menu-title.active{background:var(--accent-soft);}
.ui-collapse-menu-title.active a{color:var(--accent-deep);}
.ui-card-book{border:1px solid #cfe8e4;border-radius:0 16px 0 0;}
.ui-card-book .ui-card-header{padding:15px 25px;line-height:30px;background:#f4fbfa;border-bottom:1px solid #cfe8e4;border-radius:0 16px 0 0;}
.ui-card-book .ui-card-header .ui-card-header-title{border:0;padding:0;}
.ui-card-book .ui-card-body{padding:20px 25px 25px;word-break:break-all;}
.ui-card-book .ui-card-footer{border-top:0;padding:0 25px 20px;}
.ui-am-scale-up{z-index:999;}

/* 分页：小圆角，别太胶囊 */
.ui-page ul{
  gap:6px;
  margin-left:0 !important;
  flex-wrap:wrap;
}
.ui-page ul li{
  border:0 !important;
  margin:0 !important;
  background:transparent !important;
  overflow:hidden;
  border-radius:6px !important;
}
.ui-page ul li:first-child,
.ui-page ul li:last-child,
.ui-page ul li:first-child a,
.ui-page ul li:last-child a,
.ui-page-mid ul li,
.ui-page-mid ul li:first-child,
.ui-page-mid ul li:last-child{
  border-radius:6px !important;
}
.ui-page ul li a{
  min-width:32px;
  padding:0 11px !important;
  line-height:32px !important;
  font-size:14px !important;
  text-align:center;
  color:var(--accent-deep) !important;
  background:var(--accent-soft) !important;
  border:1px solid rgba(15,118,110,.18);
  border-radius:6px !important;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.ui-page ul li a:not([href]){
  color:var(--muted) !important;
  background:#f3f6f8 !important;
  border-color:var(--line) !important;
}
.ui-page ul li:hover a{
  color:var(--accent-deep) !important;
  background:#d9f5ef !important;
  border-color:rgba(15,118,110,.35);
}
.ui-page ul li.active{
  background:transparent !important;
  border-color:transparent !important;
}
.ui-page ul li.active a,
.ui-page ul li.active a:hover{
  color:#fff !important;
  background:var(--accent) !important;
  border-color:var(--accent) !important;
  box-shadow:0 4px 12px rgba(15,118,110,.22);
}
.ui-page-mid ul li{margin-right:0 !important;}

.ui-btn-blue{background:var(--accent) !important;border-color:var(--accent) !important;color:#fff !important;}
.ui-btn-blue:hover{background:var(--accent-deep) !important;border-color:var(--accent-deep) !important;color:#fff !important;}
.ui-btn-outline-blue{background:#fff !important;color:var(--accent-deep) !important;border-color:rgba(15,118,110,.28) !important;}
.ui-btn-outline-blue:hover{background:var(--accent) !important;color:#fff !important;border-color:var(--accent) !important;}
a.ui-btn-outline-blue{color:var(--accent-deep) !important;}
a:hover.ui-btn-outline-blue{color:#fff !important;}

.ui-btn-group-blue .active,
.ui-btn-group-blue .active:hover,
.ui-btn-group-blue a.active,
.ui-btn-group-blue a:hover.active{color:var(--accent) !important;border-color:var(--accent) !important;}
.ui-btn-group-blue .ui-btn-group-item:hover{border-color:var(--accent) !important;}
.ui-btn-group-blue.ui-btn-group-bg .active,
.ui-btn-group-blue.ui-btn-group-bg a.active{color:#fff !important;background:var(--accent) !important;}

.ui-badge-blue,
.ui-bar-blue{background:var(--accent) !important;}
.ui-card-header .ui-card-header-title{border-left-color:var(--accent) !important;}
.ui-dropdown-item.active{background:var(--accent) !important;}
.ui-dialog-footer-mobile button:last-child{color:var(--accent) !important;}

.ui-checkbox input[type="checkbox"] + i:after{border-color:var(--accent) !important;}
.ui-checkbox input[type="checkbox"]:checked + i:after{background:var(--accent) !important;border-color:var(--accent) !important;}
.ui-checkbox-blue input[type="checkbox"] + i:after{border-color:var(--accent) !important;}
.ui-checkbox-blue input[type="checkbox"]:checked + i:after{background:var(--accent) !important;border-color:var(--accent) !important;}
.ui-radio input[type="radio"]:checked + i{border-color:var(--accent) !important;box-shadow:0 0 0 2px rgba(15,118,110,.12) !important;}
.ui-radio input[type="radio"]:checked + i:after{background:var(--accent) !important;}
.ui-radio-blue input[type="radio"]:checked + i{border-color:var(--accent) !important;}
.ui-radio-blue input[type="radio"]:checked + i:after{background:var(--accent) !important;}
.ui-switch > input[type="checkbox"]:checked ~ .ui-switch-checkbox,
.ui-switch-blue > input[type="checkbox"]:checked ~ .ui-switch-checkbox{background:var(--accent) !important;}

.ui-line-blue:before{border-top-color:var(--accent) !important;}
.ui-line-blue span{color:var(--accent) !important;}
.ui-menu-blue .ui-menu-name{color:var(--accent-deep) !important;border-bottom-color:var(--accent) !important;}
.ui-progress .ui-progress-bar{background:var(--accent) !important;}
.ui-piclist-image em.bg-blue{background:var(--accent) !important;}

.ui-show-share a:nth-child(1){color:var(--accent);}

/* 小于 1440：版心跟窗口走 */
@media (max-width:1440px){
  :root{--width:100%;--right:300px;}
}
/* 中等宽度：推荐改三列，侧栏略收 */
@media (max-width:1200px){
  :root{--right:260px;}
  .nicebox{grid-template-columns:repeat(3,minmax(0,1fr));}
  .boxlist{grid-template-columns:repeat(2,minmax(0,1fr));}
  .header .search input[type=text]{width:180px;}
}
/* 平板：汉堡 + 下拉面板；搜索不再被挤没字 */
@media (max-width:1100px){
  :root{--header-h:72px;--right:100%;}
  .nav-toggle{display:inline-flex;flex:0 0 auto;}
  .header{
    height:72px;min-height:72px;padding:0;
    flex-wrap:nowrap;align-items:center;gap:10px;
  }
  .header .header-left{
    flex:1 1 auto;min-width:0;
    display:flex;flex-wrap:nowrap;align-items:center;gap:10px;
  }
  .header .logo{flex:0 0 auto;max-width:180px;}
  .header .header-right{
    flex:1 1 200px;width:auto;min-width:160px;max-width:280px;
  }
  .header .search input[type=text]{width:100%;}
  /* 菜单挂在绿色顶栏下方；用 !important 压过 public/css/ui.css 的 inline-block / 动画下拉 */
  .header .ui-nav{
    display:none !important;
    position:absolute !important;
    left:0;right:0;top:100%;
    width:100%;
    margin:0;padding:10px 0 14px;
    background:var(--accent);
    box-shadow:0 14px 28px rgba(15,118,110,.28);
    border-top:1px solid rgba(255,255,255,.12);
    z-index:120;
    flex:none !important;
    overflow:visible !important;
  }
  .header .ui-nav.is-open{display:block !important;}
  .header .ui-nav > ul{
    display:block !important;
    width:var(--width);
    max-width:calc(100% - 40px);
    margin:0 auto;
    padding:0;
    font-size:15px; /* 覆盖 ui.css font-size:0 */
    white-space:normal;
  }
  .header .ui-nav > ul > li{
    display:block !important;
    float:none !important;
    width:100% !important;
    position:relative;
  }
  .header .ui-nav > ul > li > a{
    padding:12px 10px !important;
    text-align:left !important;
    background:transparent;
    font-size:15px !important;
  }
  .header .ui-nav > ul > li > a:hover,
  .header .ui-nav > ul > li.active > a{background:rgba(255,255,255,.08);}
  .header .ui-nav > ul > li.active > a:after{left:10px;right:auto;width:18px;bottom:8px;}
  .header .ui-nav > ul > li > ul{
    position:static !important;
    display:block !important;
    box-shadow:none !important;border:0 !important;
    background:transparent !important;
    padding:0 0 6px 14px !important;
    margin:0 !important;
    min-width:0 !important;
    opacity:1 !important;visibility:visible !important;pointer-events:auto !important;
    transform:none !important;transition:none !important;
  }
  .header .ui-nav > ul > li > ul:before{display:none !important;}
  .header .ui-nav > ul > li > ul > li{
    display:block !important;width:100% !important;float:none !important;
  }
  .header .ui-nav > ul > li > ul > li > a,
  .header .ui-nav > ul > li.active > ul > li > a{
    color:rgba(255,255,255,.88) !important;
    padding:8px 10px !important;margin:0 !important;
    border-radius:6px;background:transparent !important;
    text-align:left !important;font-size:14px !important;
  }
  .header .ui-nav > ul > li > ul > li > a:hover,
  .header .ui-nav > ul > li.active > ul > li > a:hover,
  .header .ui-nav > ul > li > ul > li.active > a{
    color:#a7f3d0 !important;background:rgba(255,255,255,.08) !important;
  }
  .ui-show-tags,
  .ui-show-share{
    flex:1 1 100% !important;max-width:100% !important;width:100% !important;
  }
  .ui-show-share{text-align:left;margin-top:4px;}
  .post-nav{grid-template-columns:1fr;}
  .post-nav-next{text-align:left;align-items:flex-start;}
  .container{flex-wrap:wrap;}
  .container .container-left,
  .container .container-right{width:100%;flex:1 1 100%;}
  .container .container-right{
    position:static;
    max-height:none;
    overflow:visible;
    top:auto;
  }
  .nicebox{grid-template-columns:repeat(2,minmax(0,1fr));}
  .boxlist,.ui-show-image .ui-row{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ui-sidebar{display:none;}
  .home-intro-inner{flex-wrap:wrap;}
  .ui-media-other > .ui-col-8{flex-basis:100% !important;}
  .ui-media-other > .ui-col-4{margin-left:0 !important;}
}
@media (max-width:640px){
  :root{--header-h:64px;}
  .header{height:64px;min-height:64px;padding:0;gap:8px;}
  .header .header-left{flex:1 1 auto;gap:8px;}
  .header .header-right{
    flex:1 1 120px;min-width:112px;max-width:200px;
  }
  .header .logo{max-width:120px;}
  .header .logo img{max-height:36px;}
  .header .search input[type=text]{width:100%;font-size:14px;padding:0 38px 0 12px;}
  .header .search button[type=submit]{width:28px;height:28px;margin-left:-34px;}
  .header .ui-nav > ul{max-width:calc(100% - 24px);}
  .nav-toggle{width:36px;height:36px;}
  .nicebox,.boxlist,.ui-show-image .ui-row{grid-template-columns:1fr;}
  .banner .ui-carousel-item a{aspect-ratio:16/9;}
  .ui-media-list > .ui-media{gap:10px;padding:10px 4px;margin:0 -4px;}
  .ui-media-img{flex-basis:96px;width:96px;}
  .ui-media-header{font-size:15px;}
  .ui-show-title h1{font-size:22px;}
  .box{padding:14px;}
  .home-intro-inner{flex-direction:column;align-items:flex-start;}
  .home-intro-actions{width:100%;}
  .home-btn{flex:1 1 auto;}
  .code-copy{opacity:1;}
  .footnav a{display:inline-block;margin:4px 6px;}
  .width{max-width:calc(100% - 24px);}
}

/* 打印：只留文章，去掉导航/侧栏/浮条等 */
@media print{
  .bg-color,.banner-wrap,.ui-bread,.container-right,.ui-sidebar,
  .ui-show-share,.post-nav,.copyright,.code-copy,.home-intro,
  .ui-show-image,.footnav{display:none !important;}
  body{
    background:#fff !important;color:#000 !important;
    font-size:14px;line-height:1.7;
  }
  .width,.container,.container-left,.box{
    width:100% !important;max-width:none !important;
    margin:0 !important;padding:0 !important;
    border:0 !important;box-shadow:none !important;border-radius:0 !important;
  }
  .ui-show-title{border-bottom:1px solid #ccc;margin-bottom:12px;padding-bottom:8px;}
  .ui-show-body a{color:#000;text-decoration:underline;}
  .ui-show-body pre,.ui-show-body code{
    background:#f5f5f5 !important;color:#111 !important;border-color:#ddd !important;
  }
  .ui-show-body img{border:0;margin:10px auto;max-width:100%;}
  a[href]:after{content:"" !important;}
}
