/* ============================================================
 * nexsms.net 皮肤 —— 与 https://nexsms.net/ 首页视觉对齐
 * 由 _theme-tools/gen_skin.py 生成；改配色请改 skins.json 里的 token，
 * 别直接改本文件，下次生成会被覆盖。
 * ============================================================ */
:root{
  --once-brand:#0284c7;
  --once-brand-hover:#0369a1;
  --once-brand-soft:rgba(2,132,199,.35);
  --once-brand-gradient:linear-gradient(to right,#14b8a6,#0ea5e9);
  --once-on-brand:#ffffff;
  --once-bg:#f9fafb;
  --once-surface:#ffffff;
  --once-subtle:#f0f9ff;
  --once-border:#f3f4f6;
  --once-text:#111827;
  --once-heading:#111827;
  --once-muted:#4b5563;
  --once-font:Inter,'Noto Sans SC',sans-serif;
  --once-radius:16px;
  --once-radius-sm:12px;
  --once-btn-radius:9999px;
  --once-shadow:0 1px 2px rgba(17,24,39,.04),0 1px 3px rgba(17,24,39,.06);
  --once-shadow-lg:0 10px 30px -12px rgba(17,24,39,.18);
  --once-btn-shadow:0 6px 16px -8px rgba(2,132,199,.65);
  --once-header-bg:rgba(255,255,255,.8);
  --once-header-shadow:0 1px 2px rgba(17,24,39,.04);
  --once-header-pad:16px;
  --once-logo-size:20px;
  --once-footer-bg:#111827;
  --once-footer-text:#d1d5db;
  --once-footer-border:#1f2937;
  --once-footer-link-hover:#ffffff;
}
:root.dark{
  --once-brand:#4ea9d8;
  --once-brand-hover:#0284c7;
  --once-brand-soft:rgba(77,168,215,.45);
  --once-brand-gradient:linear-gradient(to right,#14b8a6,#0ea5e9);
  --once-on-brand:#ffffff;
  --once-bg:#0d1117;
  --once-surface:#161b22;
  --once-subtle:#21262d;
  --once-border:#30363d;
  --once-text:#c9d1d9;
  --once-heading:#e6edf3;
  --once-muted:#8b949e;
  --once-shadow:0 1px 2px rgba(0,0,0,.4);
  --once-shadow-lg:0 10px 30px -12px rgba(0,0,0,.6);
  --once-header-bg:rgba(22,27,34,.88);
  --once-header-shadow:0 1px 2px rgba(0,0,0,.4);
  --once-footer-bg:#0d1117;
  --once-footer-text:#8b949e;
  --once-footer-border:#30363d;
  --once-footer-link-hover:#4ea9d8;
}

/* ============================================================
 * 共享皮肤层（由 gen_skin.py 生成，请勿直接编辑单站文件）
 * 只消费上面的 CSS 变量，不写死任何站点专属颜色。
 * 加载顺序：style.css -> skin.css，故同特异性下本层生效。
 * ============================================================ */

/* ---------- 基础 ---------- */
body{
  font-family:var(--once-font);
  color:var(--once-text);
  background-color:var(--once-bg);
  background-image:none;
}
a{color:var(--once-text);}
a:hover{color:var(--once-brand);}
::-webkit-scrollbar{background:var(--once-border);}
::-webkit-scrollbar-thumb{background:var(--once-muted);}

/* ---------- 顶部 ---------- */
.header{
  background:var(--once-header-bg);
  -webkit-backdrop-filter:saturate(180%) blur(12px);
  backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--once-border);
  box-shadow:var(--once-header-shadow);
  padding:var(--once-header-pad) 0;
}
/* 站名在博客首页是 <h1>、其余页面是 <div>（保证每页只有一个 h1）。h1 自带上外边距
   而 div 没有，logo 又是 align-items:center 的 flex 项，不显式清零的话首页和内页的
   头部会差出几个像素。 */
.top .top_l .logo{font-size:var(--once-logo-size);margin-top:0;margin-bottom:0;}
.top .top_l .logo a b{color:var(--once-text);font-weight:700;letter-spacing:-.2px;}
.top .top_l .logo a img{background-color:transparent;border-radius:var(--once-radius-sm);}
.header-menu .header-menu-ul li a,
.header-menu .header-menu-ul li button{color:var(--once-muted);font-weight:500;}
.header-menu .header-menu-ul li a:hover,
.header-menu .header-menu-ul li button:hover,
.header-menu .header-menu-ul li a.current{color:var(--once-brand);}
.header-menu .header-menu-ul li .sub-menu{
  background:var(--once-surface);
  border:1px solid var(--once-border);
  border-radius:var(--once-radius);
  box-shadow:var(--once-shadow-lg);
}
.top .top_r{display:flex;align-items:center;gap:6px;}
.top .top_r .top_r_an{color:var(--once-muted);}
.top .top_r .top_r_an.theme-switch{background:var(--once-subtle);}
.top .top_r .top_r_an:hover{background:var(--once-subtle);color:var(--once-brand);}
.mobile_an{color:var(--once-muted);}

/* 返回官网首页按钮 */
.back-to-site{
  display:inline-flex;align-items:center;gap:6px;
  height:32px;padding:0 14px;margin-right:10px;
  border-radius:var(--once-btn-radius);
  background:var(--once-brand);
  color:var(--once-on-brand)!important;
  font-size:13px;font-weight:600;line-height:1;
  white-space:nowrap;
  border:1px solid transparent;
  box-shadow:var(--once-btn-shadow);
  transition:background .2s ease,transform .2s ease,box-shadow .2s ease;
}
.back-to-site:hover{
  background:var(--once-brand-hover);
  color:var(--once-on-brand)!important;
  transform:translateY(-1px);
}
.back-to-site i{font-size:13px;}
@media (max-width:992px){
  .back-to-site span{display:none;}
  .back-to-site{padding:0 10px;margin-right:4px;}
}
#mobile_right_nav .menu-zk li.menu-item-back-to-site a{
  background:var(--once-brand);
  color:var(--once-on-brand);
  font-weight:600;
}
#mobile_right_nav .menu-zk li.menu-item-back-to-site a:hover{background:var(--once-brand-hover);}

/* ---------- 移动端抽屉 ---------- */
#mobile_right_nav .mobile_head{background:var(--once-subtle);}
#mobile_right_nav .mobile_head .mobile_head_logo{color:var(--once-text);}
#mobile_right_nav .mobile_head .theme-switch{background:var(--once-surface);color:var(--once-text);}
#mobile_right_nav .menu-zk{background:var(--once-surface);border:1px solid var(--once-border);border-radius:var(--once-radius);}
#mobile_right_nav .menu-zk li a,
#mobile_right_nav .menu-zk li button{color:var(--once-text);border-bottom:1px solid var(--once-border);}
#mobile_right_nav .menu-zk .sub-menu{background:var(--once-brand);}
#mobile_right_nav .menu-zk .menu-item-has-children .czxjcdbs:before{background:var(--once-muted);}

/* ---------- 搜索 ---------- */
#c_sousuo{background:var(--once-surface);}
#c_sousuo .search_box .ss_a{border:2px solid var(--once-border);border-radius:var(--once-radius);}
#c_sousuo .search_box .ss_a input{color:var(--once-text);}
#c_sousuo .search_box .ss_a button{color:var(--once-brand);}

/* ---------- 卡片 ---------- */
.post_def,
.post_gallery,
.widget,
.cat_info_top,
.post_related,
.author_show_box,
.links-page-item{
  background:var(--once-surface);
  border:1px solid var(--once-border);
  border-radius:var(--once-radius);
  box-shadow:var(--once-shadow);
}
.post_def:hover,
.post_gallery:hover{box-shadow:var(--once-shadow-lg);}
.post_container_title{
  background:var(--once-surface);
  border:1px solid var(--once-border);
  border-bottom:1px solid var(--once-border);
  border-radius:var(--once-radius) var(--once-radius) 0 0;
}
.post_container{
  background:var(--once-surface);
  border:1px solid var(--once-border);
  border-top:none;
  border-radius:0 0 var(--once-radius) var(--once-radius);
}
.post_author{
  background:var(--once-surface);
  border:1px solid var(--once-border);
  border-top:1px solid var(--once-border);
  border-radius:var(--once-radius);
}
.post_comment,#comments{border-radius:var(--once-radius);}
#comments{background:var(--once-surface);border:1px solid var(--once-border);}
.post_def .post_def_left img,
.post_def img,
.post_gallery .post_gallery_head img,
.widget_hot_post .widget_hot_li img,
.author_post li img{border-radius:var(--once-radius-sm);}
.post_def .post_def_right .post_def_title h2{font-weight:600;letter-spacing:-.1px;}
.post_def .post_def_right .post_def_title p{color:var(--once-muted);}
.post_info,
.post_info .post_info_l span a,
.post_info .post_info_r em,
.post_info .post_info_r em a{color:var(--once-muted);}

/* ---------- 品牌强调 ---------- */
.widget-title:before,
.cat_info_top h1:before,
.cat_info_top h2:before{background:var(--once-brand);background:var(--once-brand-gradient);}
.widget-title:after{background:var(--once-border);}
.wznrys h3:before{background:var(--once-brand-gradient);}
.wznrys h4:before{background:var(--once-brand-soft);}
#banner .banlist i,
.index_banner .index_banner_center .zt_list b,
.index_banner .gglb b{background:var(--once-brand);color:var(--once-on-brand);border-radius:0 0 var(--once-radius-sm) 0;}
#banner .carousel-control-prev i:hover,
#banner .carousel-control-next i:hover{background:var(--once-brand);color:var(--once-on-brand);}
#banner,
.index_banner .index_banner_center .zt_list,
.index_banner .gglb,
.post_images{border-radius:var(--once-radius);}
.widget_hot_tags .tagcloud a{background-color:var(--once-subtle);color:var(--once-muted);border-radius:var(--once-radius-sm);}
.widget_hot_tags .tagcloud a:hover{background:var(--once-brand);color:var(--once-on-brand);}
.widget_hot_tags .tagcloud a.hot:before{background:var(--once-brand);border-color:var(--once-surface);}
.widget_recent_entries ul li{border-left:2px solid var(--once-border);}
.widget_recent_entries ul li:before{background-color:var(--once-surface);}
.widget_recent_entries ul li:after{background-color:var(--once-brand);border-color:var(--once-surface);}
.widget_recent_entries ul li:hover:after{background-color:var(--once-brand-hover);}
.widget_recent_entries ul li span{color:var(--once-muted);}
.widget_search #s{background:var(--once-subtle);color:var(--once-text);border-radius:var(--once-radius-sm);}
.widget_search #searchsubmit{background:var(--once-brand);color:var(--once-on-brand);border-radius:0 var(--once-radius-sm) var(--once-radius-sm) 0;}
.widget_comment_ul li{border-bottom:1px solid var(--once-border);}
.widget_comment_ul li .widget_comment_info span,
.widget_hot_post .widget_hot_li .hot_post_info p,
.author_post li .author_title p,
.author_show_box .author_show_info,
.links-page-desc,
.tags-page .tagcloud a .tag-count{color:var(--once-muted);}
.author_post{border-top:1px solid var(--once-border);}
.post_author_r .post_author_tag em{background:var(--once-subtle);border-radius:var(--once-radius-sm);}
.post_author_r .post_author_tag em:hover{background:var(--once-brand);color:var(--once-on-brand);}
.post_author_icon a{background:var(--once-brand);color:var(--once-on-brand);border-radius:var(--once-radius-sm);}
.post_author_icon a:hover{background:var(--once-brand-hover);}
.post-read-more a{background:var(--once-surface);border:1px solid var(--once-border);border-radius:var(--once-btn-radius);color:var(--once-muted);}
.post-read-more a:hover{border-color:var(--once-brand);color:var(--once-brand);}
.post-read-more a.loading{background:var(--once-brand);color:var(--once-on-brand);border-color:var(--once-brand);}
.posts-nav .page-numbers{background:var(--once-surface);border:1px solid var(--once-border);border-radius:var(--once-radius-sm);color:var(--once-muted);}
.posts-nav .page-numbers:hover,
.posts-nav .page-numbers.current{background:var(--once-brand);border-color:var(--once-brand);color:var(--once-on-brand);}
.scrollToTopBtn{background-color:var(--once-text);color:var(--once-surface);}
.scrollToTopBtn:hover{background:var(--once-brand);color:var(--once-on-brand);}
.post_related_list a{color:var(--once-text);}
.post_related_list a:hover{color:var(--once-brand);}
.post_related_list a:before{background-color:var(--once-brand-soft);}
.cat_info_top p{color:var(--once-muted);}

/* ---------- 正文 ---------- */
.wznrys{color:var(--once-text);}
.wznrys h1,.wznrys h2,.wznrys h3,.wznrys h4,.wznrys h5,.wznrys h6{color:var(--once-heading);}
.wznrys h2{border-bottom:1px solid var(--once-border);}
.wznrys h6{color:var(--once-muted);}
.wznrys p a,
.wznrys ol li a,
.wznrys ul li a{color:var(--once-brand);border-bottom:1px solid var(--once-brand-soft);}
.wznrys p a:hover,
.wznrys ol li a:hover,
.wznrys ul li a:hover{color:var(--once-brand-hover);border-bottom-color:var(--once-brand);}
.wznrys blockquote{border-left:4px solid var(--once-brand);background-color:var(--once-subtle);border-radius:var(--once-radius-sm);}
.wznrys pre,
.comment-content pre{border:1px solid var(--once-border);border-radius:var(--once-radius);}
.wznrys :not(pre)>code,
.comment-content :not(pre)>code{background:var(--once-subtle);border:1px solid var(--once-border);border-radius:var(--once-radius-sm);}
.wznrys table thead th,
.wznrys table.table thead th{color:var(--once-heading);}
.wznrys table table{border-color:var(--once-border);}
.wznrys table table tr,
.wznrys table table tr td,
.wznrys table table tr th{border-color:var(--once-border);}

/* ---------- 评论 ---------- */
#comments .comments-title{border-bottom:2px solid var(--once-border);}
#comments .comment-list li .comment-body{border-bottom:1px solid var(--once-border);}
#comments form.comment-form .comment-form-comment textarea,
#comments form.comment-form p input{background:var(--once-subtle);color:var(--once-text);border-radius:var(--once-radius-sm);}

/* ---------- 页脚 ---------- */
.links{background:var(--once-footer-bg);border-top:1px solid var(--once-footer-border);}
.footbox{background:var(--once-footer-bg);border-top:1px solid var(--once-footer-border);}
.links a,.links span,
.foot a,.foot .copyright p,.foot .copyright p a,
.foot .foot_nav .dbdh ul li a,
.foot .foot_nav .beian{color:var(--once-footer-text);}
.links a:hover,
.foot .foot_nav .dbdh ul li a:hover,
.foot .copyright p a:hover{color:var(--once-footer-link-hover);}

/* ============================================================
 * 深色模式：变量已在 :root.dark 覆盖，这里只处理 style.css 里
 * 写死颜色的 .dark 规则。
 * ============================================================ */
.dark body{background-color:var(--once-bg);color:var(--once-text);}
.dark a{color:var(--once-text);}
.dark a:hover{color:var(--once-brand);}
.dark .header{background:var(--once-header-bg);border-bottom:1px solid var(--once-border);}
.dark .top .top_l .logo a b{color:var(--once-text);}
.dark .top .top_l .logo a img,
.dark #mobile_right_nav .mobile_head .mobile_head_logo img{background-color:transparent;}
.dark .top .top_r .top_r_an{color:var(--once-muted);}
.dark .top .top_r .top_r_an.theme-switch{background:var(--once-subtle);}
.dark .top .top_r .top_r_an:hover{background:var(--once-subtle);}
.dark .mobile_an{color:var(--once-muted);}
.dark .header-menu .header-menu-ul li a,
.dark .header-menu .header-menu-ul li button{color:var(--once-muted);}
.dark .header-menu .header-menu-ul li a:hover,
.dark .header-menu .header-menu-ul li button:hover,
.dark .header-menu .header-menu-ul li a.current{color:var(--once-brand);}
.dark .header-menu .header-menu-ul li .sub-menu{background:var(--once-surface);border:1px solid var(--once-border);}
.dark #mobile_right_nav{background:var(--once-bg);}
.dark #mobile_right_nav .mobile_head{background:var(--once-subtle);}
.dark #mobile_right_nav .mobile_head .mobile_head_logo b{color:var(--once-text);}
.dark #mobile_right_nav .mobile_head .theme-switch{background:var(--once-subtle);color:var(--once-text);}
.dark #mobile_right_nav .menu-zk{background:var(--once-surface);}
.dark #mobile_right_nav .menu-zk li a,
.dark #mobile_right_nav .menu-zk li button{color:var(--once-muted);border-bottom:1px solid var(--once-border);}
.dark #mobile_right_nav .menu-zk .sub-menu{background:var(--once-brand);}
.dark #mobile_right_nav .menu-zk li.menu-item-back-to-site a{color:var(--once-on-brand);}
.dark #mobile_right_nav .menu-zk .menu-item-has-children .czxjcdbs:before{background:var(--once-muted);}
.dark .post_def,
.dark .post_gallery,
.dark .widget,
.dark .cat_info_top,
.dark .post_container_title,
.dark .post_container,
.dark .post_author,
.dark .post_related,
.dark .author_show_box,
.dark .links-page-item,
.dark #comments{background:var(--once-surface);border-color:var(--once-border);}
.dark .post_container_title{border-bottom-color:var(--once-border);}
.dark .post_author{border-top-color:var(--once-border);}
.dark .post_def .post_def_right .post_def_title p,
.dark .post_info,
.dark .post_info .post_info_l span a,
.dark .post_info .post_info_r em,
.dark .post_info .post_info_r em a,
.dark .links-page-desc,
.dark .tags-page .tagcloud a .tag-count{color:var(--once-muted);}
.dark .widget-title{color:var(--once-heading);}
.dark .widget-title:after{background:var(--once-border);}
.dark .widget_hot_tags .tagcloud a{background-color:var(--once-subtle);}
.dark .widget_hot_tags .tagcloud a:hover{background:var(--once-brand);color:var(--once-on-brand);}
.dark .widget_hot_tags .tagcloud a.hot:before{background:var(--once-brand);border-color:var(--once-surface);}
.dark .widget_comment_ul li{border-bottom:1px solid var(--once-border);}
.dark .widget_recent_entries ul li{border-left:2px solid var(--once-border);}
.dark .widget_recent_entries ul li:before{background-color:var(--once-surface);}
.dark .widget_recent_entries ul li:after{border-color:var(--once-surface);background-color:var(--once-brand);}
.dark .widget_search #s{background:var(--once-subtle);color:var(--once-text);}
.dark .post_container_title h1,
.dark .wznrys h1,.dark .wznrys h2,.dark .wznrys h3,
.dark .wznrys h4,.dark .wznrys h5,.dark .wznrys h6{color:var(--once-heading);}
.dark .wznrys{color:var(--once-text);}
.dark .wznrys h2{border-bottom:1px solid var(--once-border);}
.dark .wznrys h6{color:var(--once-muted);}
.dark .wznrys h4:before{background:var(--once-brand-soft);}
.dark .wznrys blockquote,
.dark .comment-content blockquote{border-left:4px solid var(--once-brand);background-color:var(--once-subtle);}
.dark .wznrys table table,
.dark .wznrys table table tr,
.dark .wznrys table table tr td,
.dark .wznrys table table tr th{border-color:var(--once-border);}
.dark .wznrys table table{background:var(--once-surface);color:var(--once-text);}
.dark .wznrys table thead th,
.dark .wznrys table table thead th{background:var(--once-subtle);color:var(--once-heading);}
.dark .post_related_list a{color:var(--once-text);}
.dark .post_related_list a:hover{color:var(--once-brand);}
.dark .post_author_r .post_author_tag em{background:var(--once-subtle);}
.dark .post-read-more a{background:var(--once-surface);color:var(--once-muted);border-color:var(--once-border);}
.dark .post-read-more a:hover{background:var(--once-surface);border-color:var(--once-brand);color:var(--once-brand);}
.dark .post-read-more a.loading{background:var(--once-brand);color:var(--once-on-brand);}
.dark .posts-nav .page-numbers{background:var(--once-surface);color:var(--once-muted);border-color:var(--once-border);}
.dark .posts-nav .page-numbers:hover,
.dark .posts-nav .current{background:var(--once-brand);color:var(--once-on-brand);border-color:var(--once-brand);}
.dark #comments .comments-title{border-bottom:2px solid var(--once-border);}
.dark #comments .comment-list li .comment-body{border-bottom:1px solid var(--once-border);}
.dark #comments form.comment-form .comment-form-comment textarea,
.dark #comments form.comment-form p input{background:var(--once-subtle);color:var(--once-text);}
.dark #c_sousuo{background:var(--once-surface);}
.dark #c_sousuo .search_box .ss_a{border:2px solid var(--once-border);}
.dark .author_post{border-top:1px solid var(--once-border);}
.dark .links,
.dark .footbox{background:var(--once-footer-bg);border-top:1px solid var(--once-footer-border);}
.dark .links a,
.dark .foot .foot_nav .beian,
.dark .foot a,
.dark .foot .copyright p,
.dark .foot .copyright p a,
.dark .foot .foot_nav .dbdh ul li a{color:var(--once-footer-text);}
.dark .scrollToTopBtn{background-color:var(--once-subtle);color:var(--once-text);}
.dark .scrollToTopBtn:hover{background:var(--once-brand);color:var(--once-on-brand);}
