/**
 * Kboke 主题样式
 * v1.0.0
 */

:root {
    --primary: #2563eb;
    /* hover 色由主色自动派生（加深），移除独立的悬停主色设置项 */
    --primary-hover: color-mix(in srgb, var(--primary) 85%, #000);
    --primary-light: color-mix(in srgb, var(--primary) 12%, #fff);
    --bg: #f8fafc;
    --white: #ffffff;
    --card-bg: rgba(255, 255, 255, 0.86); /* v2.3.168：卡片半透明背景，由后台「卡片透明度」控制 */
    --text: #1e293b;
    --gray: #64748b;
    --muted: #475569; /* v2.3.512：由 #64748b(slate-500) 加深到 slate-600——原值在白色/浅色卡片上对比度仅约 4.0:1，低于 WCAG AA 正文要求的 4.5:1，小字尤其发灰看不清 */
    --border: rgba(0,0,0,0.06);
    --border-light: #e5e7eb;
    --border-blue: #dbeafe;
    --gray-100: #f1f5f9;
    --sep: #cbd5e1;
    /* 圆角梯度 */
    --radius-lg: 20px;
    --radius: 16px;
    --radius-md: 12px;
    --radius-sm: 8px;
    /* 阴影层级 */
    --shadow: 0 10px 40px rgba(0,0,0,0.06);
    --shadow-sm: 0 2px 12px rgba(0,0,0,0.05);
    --shadow-md: 0 8px 28px rgba(0,0,0,0.08);
    /* 主色聚焦光晕 */
    --glow: 0 0 0 4px color-mix(in srgb, var(--primary) 18%, transparent);
    --content-width: 760px;
    /* 页面卡片/侧边栏/头部 logo 共用的水平内边距，确保顶部站点名与下方标题文字左右对齐 */
    --page-card-x: 22px;
}

/* 移动端同样使用 22px 内部留白，避免文字贴边 */
@media (max-width: 768px) {
    :root { --page-card-x: 22px; }
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Helvetica Neue", Arial, sans-serif;
    background: var(--bg);
    color: var(--text);
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    /* v2.3.197：粘底页脚——内容不足一屏时页脚仍贴视口底部（相册/导航/404 等短页面） */
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}
/* v2.3.201：主内容撑满剩余空间，页脚粘底且与内容保留固定间距 */
body > main {
    flex: 1 0 auto;
}

.container {
    max-width: var(--site-width, 1140px);
    margin: 0 auto;
    padding: 0;
    box-sizing: border-box;
}
@media (max-width: 768px) {
    /* v2.3.113：移动端 .container 默认带左右内边距（22px），避免任何 main 内的内容贴边。
       头/页脚 .container 已单独覆盖到 --page-card-x，保持视觉一致。 */
    .container { padding: 0 var(--page-card-x, 22px) !important; }
    .header-inner.container { padding: 0 var(--page-card-x) !important; }
    /* v2.3.123：用 overflow-x: clip 而非 hidden，防止破坏 position:sticky（固定导航） */
    html, body { overflow-x: clip; }
}
/* v2.3.139：所有链接文字默认中性色（亮色黑/暗色白），仅 hover 显示主色；
   网站名 .logo 与按钮/徽章/胶囊等交互元素保留各自主色设计 */
a { text-decoration: none; color: var(--text); }
a:hover { color: var(--primary); }

h1 { font-size: 44px; font-weight: 700; line-height: 1.15; letter-spacing: -0.5px; }
h2 { font-size: 30px; font-weight: 600; letter-spacing: -0.3px; }
h3 { font-size: 20px; font-weight: 600; }
img { max-width: 100%; height: auto; }

/* ==================== Header ==================== */
#kboke-header {
    display: block;
    position: relative;
    min-height: 60px; /* v2.3.188：高度 72→60px，压缩上下空白 */
    background: rgba(255,255,255,0.95);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
    z-index: 9999;
}

/* 滚动时固定导航栏：使用 sticky 而非 fixed，避免内容遮挡 */
.kboke-sticky-header #kboke-header {
    position: sticky;
    top: 0;
}

/* WordPress 管理栏适配 */
.admin-bar.kboke-sticky-header #kboke-header {
    top: 32px;
}

@media screen and (max-width: 782px) {
    .admin-bar.kboke-sticky-header #kboke-header {
        top: 46px;
    }
}

.header-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 60px; /* v2.3.188：高度 72→60px */
    gap: clamp(16px, 2vw, 24px);
}
/* v2.3.169：站点名称（顶部 Logo / 底部品牌区）统一「主色渐变流光 + hover 上浮」 */
.logo {
    font-size: 22px;
    font-weight: 700;
    flex-shrink: 0;
    letter-spacing: .5px;
    text-decoration: none;
    display: inline-block;
}
/* v2.3.329：首页导航 Logo 自动 H1（SEO）——重置 h1 默认边距/字号，视觉与普通 logo 完全一致 */
h1.logo { margin: 0; font-size: 22px; line-height: inherit; }
h1.logo a { text-decoration: none; display: block; }
h1.logo.custom-logo-home .custom-logo-link { display: block; }

/* ==================== 站点名称：主色渐变流光 + hover 上浮（v2.3.169） ==================== */
.logo,
.kboke-footer-title a {
    background: linear-gradient(100deg,
        var(--primary) 0%,
        var(--primary-hover) 25%,
        #6ea0ff 50%,
        var(--primary-hover) 75%,
        var(--primary) 100%);
    background-size: 200% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: var(--primary);
    animation: kboke-logo-flow 5s ease-in-out infinite;
    transition: transform .3s ease, filter .3s ease;
}
.logo:hover,
.logo:focus,
.kboke-footer-title a:hover,
.kboke-footer-title a:focus {
    transform: translateY(-2px);
    filter: brightness(1.1);
}
@keyframes kboke-logo-flow {
    0%   { background-position: 200% 0; }
    50%  { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}
/* 不支持 background-clip:text 的浏览器降级为纯主色文字 */
@supports not ((-webkit-background-clip: text) or (background-clip: text)) {
    .logo,
    .kboke-footer-title a {
        background: none;
        -webkit-text-fill-color: currentColor;
        color: var(--primary);
    }
}
.custom-logo-link { display: inline-flex; }
.header-nav {
    display: flex;
    align-items: center;
    gap: clamp(16px, 2vw, 24px);
    margin-left: auto;
    max-width: calc(100% - 140px);
}
.header-nav ul {
    display: flex;
    align-items: center;
    gap: clamp(14px, 1.6vw, 26px);
    list-style: none;
    margin: 0;
    padding: 0;
    white-space: nowrap;
}
.header-nav li { margin: 0; padding: 0; }
.header-nav a {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--text);
    font-size: 17px;
    font-weight: 700;
    line-height: 1;
    padding: 8px 0;
    white-space: nowrap;
    transition: color .2s;
}
.header-nav a:hover,
.header-nav a:focus,
.header-nav .current-menu-item > a,
.header-nav .current_page_item > a {
    color: var(--primary);
}
/* v2.3.125：移除选中菜单项下方的蓝色圆点标记 */

/* ==================== 顶部导航下拉子菜单（v2.3.122） ==================== */
/* 带子菜单的父项：相对定位 + 小箭头 */
.header-nav li.menu-item-has-children { position: relative; }
.header-nav li.menu-item-has-children > a::after {
    content: '';
    margin-left: 6px;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid currentColor;
}
/* 下拉面板：绝对定位，hover / 键盘聚焦显示 */
.header-nav ul.sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 200px;
    display: block;
    visibility: hidden;
    opacity: 0;
    transform: translateY(8px);
    background: var(--white); /* v2.3.176：下拉面板不透明，避免下方内容透出看不清 */
    border: 1px solid var(--border);
    border-radius: 10px;
    box-shadow: var(--shadow);
    padding: 8px 0;
    gap: 0;
    flex-direction: column;
    align-items: stretch;
    z-index: 999;
    white-space: nowrap;
    transition: opacity .2s ease, transform .2s ease, visibility .2s;
}
.header-nav li.menu-item-has-children:hover > ul.sub-menu,
.header-nav li.menu-item-has-children:focus-within > ul.sub-menu {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
}
.header-nav ul.sub-menu li { width: 100%; }
.header-nav ul.sub-menu a {
    display: block;
    padding: 9px 18px;
    /* v2.3.159：二级菜单字号/字重与一级菜单一致（17px / 700） */
    font-size: 17px;
    font-weight: 700;
    line-height: 1.4;
    white-space: nowrap;
    color: var(--text);
    border-radius: 0;
}
.header-nav ul.sub-menu a:hover,
.header-nav ul.sub-menu a:focus {
    color: var(--primary);
    background: var(--gray-100);
}
.header-nav ul.sub-menu .current-menu-item > a,
.header-nav ul.sub-menu .current_page_item > a { color: var(--primary); }
.header-nav ul.sub-menu .current-menu-item > a::after,
.header-nav ul.sub-menu .current_page_item > a::after { display: none; }
/* 三级及以上：向右展开 */
.header-nav ul.sub-menu ul.sub-menu {
    top: -8px;
    left: 100%;
}
.header-nav ul.sub-menu li.menu-item-has-children > a::after {
    border-top: 4px solid transparent;
    border-bottom: 4px solid transparent;
    border-left: 5px solid currentColor;
    margin-left: auto;
}
/* 暗色模式：下拉面板用 --white 变量自动适配，hover 高亮用 --gray-100 */
html[data-theme="dark"] .header-nav ul.sub-menu { border-color: var(--border); box-shadow: 0 10px 40px rgba(0,0,0,.45); }
html[data-theme="dark"] .header-nav ul.sub-menu a:hover,
html[data-theme="dark"] .header-nav ul.sub-menu a:focus { background: var(--gray-100); }
/* v2.3.125：桌面端隐藏独立展开按钮（桌面用 hover 下拉，按钮仅供移动端手风琴） */
.header-nav .kboke-submenu-toggle { display: none; }
.header-wx { font-size: 14px; color: var(--gray); flex-shrink: 0; }
.header-wx strong { color: var(--text); cursor: pointer; transition: color .2s; }
.header-wx strong:hover { color: var(--primary); }

/* 顶部搜索图标 */
.header-search-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--text);
    border-radius: 8px;
    transition: all .2s;
    flex-shrink: 0;
}
.header-search-toggle:hover {
    background: var(--gray-100);
    color: var(--primary);
}

/* 顶部搜索展开框 */
.header-search-overlay {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff; /* v2.3.176：搜索展开框不透明 */
    border-bottom: 1px solid var(--border-light);
    padding: 16px 0;
    display: none;
    z-index: 999;
    box-shadow: 0 4px 12px rgba(0,0,0,.06);
}
.header-search-overlay.active { display: block; }
.header-search-box {
    max-width: 600px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 20px;
}
.header-search-box form {
    display: flex;
    flex: 1;
    gap: 0;
}
.header-search-input {
    flex: 1;
    height: 44px;
    padding: 0 18px;
    border: 2px solid var(--primary);
    border-right: none;
    border-radius: 10px 0 0 10px;
    font-size: 15px;
    outline: none;
    transition: border-color .2s;
}
.header-search-input:focus { border-color: var(--primary-hover); }
.header-search-btn {
    width: 56px;
    height: 44px;
    background: var(--primary);
    color: #fff;
    border: none;
    border-radius: 0 10px 10px 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .2s;
    flex-shrink: 0;
}
.header-search-btn:hover { background: var(--primary-hover); }
.header-search-close {
    width: 36px;
    height: 36px;
    background: var(--gray-100);
    border: none;
    border-radius: 8px;
    cursor: pointer;
    font-size: 16px;
    color: var(--gray);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all .2s;
}
.header-search-close:hover { background: var(--border-light); color: var(--text); }

/* 移动端汉堡菜单按钮 */
.header-toggle {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
    width: 44px;
    height: 44px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    margin-left: auto;
}
.header-toggle span {
    display: block;
    width: 24px;
    height: 2.5px;
    background: var(--text);
    border-radius: 2px;
    transition: all 0.3s;
    margin: 0 auto;
}
.header-toggle.active span:nth-child(1) {
    transform: translateY(8.5px) rotate(45deg);
}
.header-toggle.active span:nth-child(2) {
    opacity: 0;
}
.header-toggle.active span:nth-child(3) {
    transform: translateY(-8.5px) rotate(-45deg);
}


/* ==================== Footer ==================== */
.kboke-footer {
    /* v2.3.187：底部背景与顶部菜单栏完全一致（同色同质感） */
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    color: var(--muted);
    margin-top: 14px; /* v2.3.201：页脚与内容保留固定间距（粘底由 body > main flex:1 实现） */
}

/* 内层容器宽度统一：与 .container 保持相同宽度和水平内边距，确保页脚与头部、主体左右对齐 */
.kboke-footer-inner {
    max-width: var(--site-width, 1140px);
    margin: 0 auto;
    padding: 0;
}

/* ==================== 上半区：品牌 + 二维码 ==================== */
/* v2.3.170：底部重排——移除上/下区之间横线，加大上区留白 */
/* v2.3.172：品牌区整体下移 */
.kboke-footer-main {
    padding: 16px 0 10px; /* v2.3.188：26px/14px → 16px/10px，压缩空白 */
}

.kboke-footer-grid {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 36px;
}

@media (max-width: 767px) {
    .kboke-footer-grid {
        flex-direction: column;
        align-items: center;
        gap: 24px;
        text-align: center;
    }
}

/* 品牌区 */
.kboke-footer-brand {
    min-width: 0;
    max-width: 320px;
    margin-top: 6px;
}
/* v2.3.168：底部站名与顶部 Logo 统一（22px / 深色 / 简洁） */
.kboke-footer-title {
    margin: 0 0 10px;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: .5px;
}
.kboke-footer-title a {
    text-decoration: none;
    display: inline-block; /* transform 上浮需要 */
}
.kboke-footer-desc {
    margin: 0;
    font-size: 13px;
    white-space: nowrap; /* v2.3.172：仅显示一行 */
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.8;
    color: var(--muted);
    max-width: 420px;
}

/* 二维码 */

/* ==================== 下半区：友情链接 + 免责声明 ==================== */
.kboke-footer-secondary {
    padding: 8px 0; /* v2.3.188：10px → 8px */
    border-bottom: none;
}

.kboke-footer-disclaimer {
    font-size: 12px; /* v2.3.512：11px → 12px（成段正文的可读下限） */
    line-height: 1.7;
    color: var(--muted);
    text-align: left; /* v2.3.220：声明靠左显示，不再带"声明："标签 */
}

/* ==================== 底部版权 + 备案 ==================== */
.kboke-footer-bottom {
    padding: 8px 0; /* v2.3.188：10px → 8px */
    font-size: 12px; /* v2.3.512：11px → 12px（含版权/备案等需要看清的信息） */
    color: var(--muted);
}
.kboke-footer-bottom .kboke-footer-inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
}
.kboke-footer-copyright {
    display: flex;
    align-items: center;
    gap: 14px;
    color: var(--muted);
}
/* v2.3.172：网站地图链接 */
.kboke-footer-sitemap {
    color: var(--muted);
    text-decoration: none;
    transition: color .2s;
}
.kboke-footer-sitemap:hover {
    color: var(--primary);
}
.kboke-footer-icp {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}
.kboke-footer-icp a {
    color: var(--muted);
    text-decoration: none;
    transition: color .2s;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
}
.kboke-footer-icp a:hover {
    color: var(--primary-contrast);
}
.kboke-footer-icp-icon {
    font-size: 10px;
}

/* ==================== 页面模板 ==================== */
/* 全宽页面 / 分类列表页 / 标签页 / 网址导航页 / 标签云页 共用此宽度。
   直接跟随「基本设置 → 网页最大宽度」(--site-width)，与 .container 一致，
   确保上述所有页面宽度统一、且只需在「网页最大宽度」一处即可统一调整。 */
.kboke-page-fullwidth {
    max-width: var(--site-width, 1140px);
}

/* 单栏页面（无侧边栏，内容居中）。
   宽度同样跟随「基本设置 → 网页最大宽度」(--site-width)，
   与全宽页/分类页/导航页等保持一致，避免硬编码导致各页面宽度不统一。 */
.kboke-page-single {
    max-width: var(--site-width, 1140px);
    margin-left: auto;
    margin-right: auto;
}

/* 标签云页面 */
/* ==================== 标签云页面 ==================== */
.tag-cloud-wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    padding: 4px 0 8px;
}
.tag-cloud-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 18px;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
    text-decoration: none;
    color: var(--text);
    background: var(--gray-100);
    border: 1px solid var(--border);
    transition: all .2s ease;
    box-shadow: none;
}
.tag-cloud-item:hover {
    transform: translateY(-2px);
    box-shadow: none;
    background: var(--primary);
    border-color: var(--primary);
    color: #fff;
}
.tag-cloud-item .tag-count {
    background: color-mix(in srgb, var(--primary) 12%, transparent);
    color: var(--primary);
}
.tag-cloud-item:hover .tag-count {
    background: rgba(255, 255, 255, 0.25);
    color: #fff;
}
.tag-name {
    white-space: nowrap;
}
.tag-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 7px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.28);
    color: inherit;
}
@media (max-width: 768px) {
    .tag-cloud-wrap { gap: 8px; padding: 4px var(--page-card-x) 8px; }
    .tag-cloud-item { padding: 8px 14px; font-size: 14px; }
    .tag-count { min-width: 20px; height: 20px; font-size: 11px; }
}

/* 文章归档页面 */
.kboke-archive-total {
    display: inline-block;
    margin-bottom: 24px;
    padding: 6px 16px;
    background: var(--primary);
    color: #fff;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 600;
}
.kboke-archive-year {
    margin-bottom: 28px;
}
.kboke-archive-year-title {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 16px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--primary);
    font-size: 22px;
}
.kboke-archive-year-num {
    color: var(--text);
    font-weight: 800;
}
.kboke-archive-year-count {
    font-size: 12px;
    font-weight: 400;
    color: var(--muted);
    background: var(--gray-100);
    padding: 2px 10px;
    border-radius: 999px;
}
.kboke-archive-month {
    margin: 0 0 18px 8px;
    padding-left: 20px;
    border-left: 1px solid var(--border-light);
}
.kboke-archive-month-title {
    margin: 0 0 10px;
    font-size: 15px;
    font-weight: 600;
    color: var(--gray);
}
.kboke-archive-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.kboke-archive-list li {
    display: flex;
    align-items: baseline;
    gap: 12px;
    padding: 7px 0;
    border-bottom: 1px dashed var(--gray-100);
    font-size: 14px;
}
.kboke-archive-list li:last-child {
    border-bottom: none;
}
.kboke-archive-date {
    flex-shrink: 0;
    font-size: 12px;
    color: var(--muted);
    font-variant-numeric: tabular-nums;
}
.kboke-archive-list a {
    color: var(--text);
    text-decoration: none;
    transition: color .2s;
}
.kboke-archive-list a:hover {
    color: var(--primary);
}


/* ==================== 浮动按钮 & Toast ==================== */
.fab {
    position: fixed;
    right: 20px;
    bottom: 30px;
    width: 56px;
    height: 56px;
    background: var(--primary);
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    box-shadow: 0 6px 20px rgba(37,99,235,0.3);
    z-index: 999;
    cursor: pointer;
    transition: all .3s;
}
.fab:hover { transform: scale(1.1); }

/* v2.3.466：原 .toast 样式从未被任何 JS 引用（死样式），功能已由
   assets/css/kboke-notify.css 的统一文本提示组件取代，故移除。 */

/* ==================== 面包屑导航 ==================== */
.lv-breadcrumb {
    padding: 18px 0 12px;
    font-size: 13px;
    color: var(--gray);
}
.lv-breadcrumb a { color: var(--gray); }
.lv-breadcrumb a:hover { color: var(--primary); }
.lv-breadcrumb .sep { margin: 0 8px; color: var(--sep); }
.lv-breadcrumb .current { color: var(--text); font-weight: 500; }

.post-list { padding: 0 0 24px; }
/* ==================== 文章列表：基础卡片 ==================== */
.post-card {
    background: var(--card-bg, var(--white));
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 16px;
    margin-bottom: 16px;
    box-shadow: 0 2px 12px rgba(30, 41, 59, 0.04);
    transition: all .25s;
}
.post-card:hover { box-shadow: inset 0 2px 0 var(--primary), 0 8px 24px rgba(37,99,235,.08); transform: translateY(-2px); border-color: var(--primary); }
.post-card-meta { display: flex; gap: 6px; font-size: 12px; color: var(--muted); flex-wrap: wrap; align-items: center; }
.post-card-meta a { color: var(--muted); transition: color .2s; }
.post-card-meta a:hover,
.post-card-meta a:focus { color: var(--primary); }
/* v2.3.325：卡片元信息去 emoji——纯文字项之间用圆点分隔，风格更干净 */
.post-card-meta > span + span::before,
.post-card-meta .post-card-cat + span::before,
.post-card-meta .post-card-author + span::before { content: "·"; margin-right: 6px; opacity: .6; }
.post-card-author { display: inline-flex; align-items: center; }
.post-card-author a { color: var(--muted); transition: color .2s; }
.post-card-author a:hover,
.post-card-author a:focus { color: var(--primary); text-decoration: underline; }
/* v2.3.117 列表卡片作者：头像 + 名字 */
.post-card-author-link { display: inline-flex; align-items: center; gap: 6px; }
.post-card-author-avatar {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    object-fit: cover;
    display: inline-block;
    vertical-align: middle;
    flex-shrink: 0;
    background: var(--gray-100);
}
.post-card-author-avatar-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--primary-light);
    color: var(--primary);
    font-size: 11px;
    font-weight: 700;
    width: 20px;
    height: 20px;
    border-radius: 50%;
}
.post-card-title { font-size: 18px; font-weight: 700; margin-bottom: 8px; line-height: 1.4; }
.post-card-title a { color: var(--text); }
.post-card-title a:hover { color: var(--primary); }
/* v2.3.118 摘要统一固定 2 行：超出省略、不足占 2 行高，保证列表卡片摘要区等高整齐 */
.post-card-excerpt {
    font-size: 14px;
    color: var(--gray);
    line-height: 1.65;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 3.3em; /* ≈ 2 行高 */
}
.post-card-readmore {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--text);
    font-size: 13px;
    font-weight: 600;
    margin-top: 10px;
    transition: color .2s;
}
.post-card-readmore:hover,
.post-card-readmore:focus { color: var(--primary); }
.post-card-thumb-placeholder {
    width: 100%;
    height: 100%;
    min-height: inherit;
    background: linear-gradient(135deg, #e0e7ff 0%, #c7d2fe 100%);
    color: var(--primary);
    font-size: 24px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}
/* 无缩略图时显示的占位图片（统一替代文字首字母） */
.post-card-thumb img.post-card-thumb-placeholder {
    object-fit: cover;
    background: #e9eef4;
}
.post-card-cat {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: transparent;
    color: var(--muted);
    padding: 0;
    border-radius: 0;
    font-size: 12px;
    font-weight: 400;
    text-decoration: none;
}
.post-card-cat::before {
    content: '📁';
    font-size: 13px;
    line-height: 1;
}
.post-card-cat:hover,
.post-card-cat:focus {
    color: var(--primary);
}

/* 大图卡片 */
.post-card-style-card .post-card-thumb {
    margin-bottom: 12px;
    border-radius: 10px;
    overflow: hidden;
    aspect-ratio: 1 / 1;
}
.post-card-style-card .post-card-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.post-card-style-card .post-card-meta { margin-bottom: 10px; }

/* 左图右文 */
.post-card-style-media {
    display: flex;
    gap: 18px;
    align-items: flex-start;
}
.post-card-style-media .post-card-thumb {
    width: 160px;
    aspect-ratio: 3 / 2;
    flex-shrink: 0;
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 0;
}
.post-card-style-media .post-card-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.post-card-style-media .post-card-thumb .post-card-thumb-placeholder { font-size: 18px; }
.post-card-style-media .post-card-body { flex: 1; min-width: 0; display: flex; flex-direction: column; justify-content: center; }
.post-card-style-media .post-card-title { font-size: 17px; margin-bottom: 6px; line-height: 1.5; }
.post-card-style-media .post-card-excerpt { font-size: 13px; line-height: 1.6; margin-bottom: 8px; }
.post-card-style-media .post-card-meta { margin-top: 0; margin-bottom: 0; }
.post-card-style-media .post-card-tags { margin-top: 6px; }
/* media 卡片内边距：与容器水平内边距一致，确保卡片内容与顶部/底部文字严格对齐 */
.post-card-style-media { padding: 20px var(--page-card-x, 22px) !important; }

/* 极简列表 */
.post-list-style-list { display: flex; flex-direction: column; gap: 0; }
/* v2.3.136：极简列表恢复卡片质感——与普通分类列表一致：白底 + 圆角 + 边框，
   hover 主色描边 + 顶部主色线；保留 v2.3.133 的「不显示 meta、body 纵向排列」 */
.post-card-style-list {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px var(--page-card-x, 22px);
    margin-bottom: 14px;
    border-radius: 12px;
    border: 1px solid var(--border);
    background: var(--card-bg, var(--white)); /* v2.3.175 半透明 */
    box-shadow: var(--shadow-sm);
    transition: all .25s;
}
.post-card-style-list:last-child { margin-bottom: 0; }
.post-card-style-list:hover,
.post-card-style-list:focus-within {
    transform: translateY(-2px);
    border-color: var(--primary);
    box-shadow: inset 0 2px 0 var(--primary), 0 8px 24px rgba(37,99,235,.08);
}
.post-card-style-list .post-card-thumb {
    width: 64px;
    height: 64px;
    flex-shrink: 0;
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 0;
}
.post-card-style-list .post-card-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.post-card-style-list .post-card-thumb .post-card-thumb-placeholder { font-size: 16px; }
/* v2.3.133：极简列表去掉 meta 参数后，body 改为纵向排列（标题 + 标签） */
.post-card-style-list .post-card-body { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 6px; }
.post-card-style-list .post-card-title { font-size: 15px; margin-bottom: 0; }
.post-card-style-list .post-card-meta { display: none; }
.post-card-style-list .post-card-tags { margin-top: 0; }

/* 网格卡片 */
.post-list-style-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}
.post-list-style-grid .pagination {
    grid-column: 1 / -1;
    margin-top: 16px;
}
.post-card-style-grid {
    display: flex;
    flex-direction: column;
    padding: 0;
    overflow: hidden;
    margin-bottom: 0;
}
.post-card-style-grid .post-card-thumb {
    margin-bottom: 0;
    height: 140px;
    overflow: hidden;
}
.post-card-style-grid .post-card-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.post-card-style-grid .post-card-thumb .post-card-thumb-placeholder { font-size: 20px; }
.post-card-style-grid .post-card-body { padding: 16px var(--page-card-x, 22px); flex: 1; display: flex; flex-direction: column; }
.post-card-style-grid .post-card-title { font-size: 16px; margin-bottom: 6px; }
.post-card-style-grid .post-card-meta { margin-top: auto; }

/* ==================== 短文流样式 ==================== */
.post-list-style-short { display: flex; flex-direction: column; gap: 0; }
.post-card-style-short {
    padding: 24px var(--page-card-x, 22px);
    background: var(--card-bg, #fff); /* v2.3.175 */
    border-radius: 12px;
    margin-bottom: 16px;
    border: 1px solid var(--border);
    transition: box-shadow .2s, border-color .2s;
}
.post-card-style-short:hover {
    box-shadow: 0 2px 12px rgba(0,0,0,.06);
    border-color: var(--primary-light);
}
.post-card-style-short .post-card-title {
    font-size: 17px;
    font-weight: 600;
    margin-bottom: 10px;
}
.post-card-style-short .post-card-title a { color: var(--text); }
.post-card-style-short .post-card-title a:hover { color: var(--primary); }
.post-card-style-short .post-card-excerpt {
    font-size: 14px;
    line-height: 1.7;
    color: var(--gray);
    margin-bottom: 14px;
}
.post-card-style-short .post-card-content {
    font-size: 14px;
    line-height: 1.8;
    color: var(--text);
    margin-bottom: 16px;
    word-break: break-word;
}
.post-card-style-short .post-card-content img { max-width: 100%; height: auto; border-radius: 8px; }
.post-card-style-short .post-card-content p { margin-bottom: 12px; }
.post-card-style-short .post-card-content p:last-child { margin-bottom: 0; }
.post-card-style-short .post-card-content pre { background: var(--gray-100); padding: 14px 16px; border-radius: 8px; overflow-x: auto; font-size: 13px; }
.post-card-style-short .post-card-meta {
    display: flex;
    align-items: center;
    gap: 16px;
    font-size: 13px;
    color: var(--muted);
}

/* ==================== 产品网格样式 ==================== */
.post-list-style-product {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
.post-card-style-product {
    background: var(--card-bg, #fff); /* v2.3.175 */
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid var(--border);
    transition: transform .25s, box-shadow .25s, border-color .25s;
    display: flex;
    flex-direction: column;
}
.post-card-style-product:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,.1);
    border-color: var(--primary-light);
}
.post-card-style-product .post-card-thumb {
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}
.post-card-style-product .post-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .35s;
}
.post-card-style-product:hover .post-card-thumb img { transform: scale(1.05); }
.post-card-style-product .post-card-thumb-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    font-weight: 700;
    background: linear-gradient(135deg, #e0e7ff 0%, #c7d2fe 100%);
    color: var(--primary);
}
.post-card-style-product .post-card-body {
    padding: 14px 16px 18px;
    text-align: center;
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}
.post-card-style-product .post-card-title {
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    word-break: break-word;
}
.post-card-style-product .post-card-title a { color: var(--text); }
.post-card-style-product .post-card-title a:hover { color: var(--primary); }

@media (max-width: 768px) {
    .post-card-style-media { gap: 14px; }
    .post-card-style-media .post-card-thumb { width: 110px; aspect-ratio: 3 / 2; }
    .post-card-style-media .post-card-title { font-size: 16px; }
    .post-list-style-grid { grid-template-columns: 1fr; }
    /* v2.3.133：移动端 .container 已带 22px 内边距，列表容器不再额外缩进，避免双重留白 */
    .post-list-style-list { padding-left: 0; padding-right: 0; }
    .post-card-style-list .post-card-body { flex-direction: column; align-items: flex-start; gap: 6px; }
    .post-card-style-list .post-card-thumb { width: 56px; height: 56px; }

    /* 短文移动端 */
    .post-card-style-short { padding: 16px var(--page-card-x, 18px); margin-bottom: 12px; border-radius: 10px; }
    .post-card-style-short .post-card-title { font-size: 16px; }

    /* 短文内嵌内容手机端适配（对齐单篇文章页 single-body 的处理） */
    .post-card-style-short .post-card-content { font-size: 14px; line-height: 1.75; }
    .post-card-style-short .post-card-content img,
    .post-card-style-short .post-card-content video { max-width: 100%; height: auto; }
    .post-card-style-short .post-card-content table {
        display: block;
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        font-size: 13px;
    }
    .post-card-style-short .post-card-content th,
    .post-card-style-short .post-card-content td { padding: 8px 10px; }
    .post-card-style-short .post-card-content pre {
        padding: 12px 14px;
        font-size: 12px;
        white-space: pre-wrap;
        word-break: break-word;
    }
    .post-card-style-short .post-card-content blockquote {
        padding: 10px 14px;
        margin: 1em 0;
    }
    /* 让 iframe / 视频等嵌入内容自适应宽度 */
    .post-card-style-short .post-card-content iframe,
    .post-card-style-short .post-card-content embed,
    .post-card-style-short .post-card-content object {
        max-width: 100%;
    }

    /* 产品网格移动端 */
    .post-list-style-product { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .post-card-style-product .post-card-body { padding: 10px 12px 14px; }
}

/* ==================== 文章详情页 ==================== */
.single-content {
    padding: 28px var(--page-card-x, 22px) 8px;
    background: var(--card-bg, var(--white));
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: 0 1px 3px rgba(0,0,0,.04);
}
.single-header { margin-bottom: 36px; }

/* 标题（v2.3.143：字号缩小并靠左，与正文左对齐） */
.single-title {
    font-size: 22px;
    font-weight: 700;
    line-height: 1.35;
    color: #0f172a;
    letter-spacing: -0.02em;
    text-align: left;
}

/* Meta 信息行（v2.3.143：靠左，与标题/正文左对齐） */
.single-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 6px 16px;
    margin-top: 14px;
    font-size: 13px;
    color: var(--muted);
}
.single-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.single-meta-item + .single-meta-item::before {
    content: '';
    display: inline-block;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: #cbd5e1;
}
.single-meta-cat a {
    display: inline-flex;
    align-items: center;
    background: var(--primary-light);
    color: var(--primary);
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
}
.single-meta-cat a:hover { background: var(--primary); color: #fff; }
.single-meta-source a {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: var(--gray-100);
    padding: 4px 12px;
    border-radius: 999px;
    transition: all .2s;
}
.single-meta-source a:hover {
    background: var(--primary);
    color: #fff;
}

.single-body {
    font-size: 16px;
    line-height: 1.85;
    color: var(--text);
}
.single-body p { margin-bottom: 1.6em; }
/* v2.3.138：single-body 标题改 var(--text)，暗色下自动变浅色（此前写死深色在暗色下不可读） */
.single-body h2 { font-size: 24px; margin: 1.8em 0 0.7em; color: var(--text); font-weight: 700; }
.single-body h3 { font-size: 20px; margin: 1.5em 0 0.6em; color: var(--text); font-weight: 600; }
.single-body ul, .single-body ol { margin: 0 0 1.5em 1.5em; }
.single-body li { margin-bottom: 0.5em; }
.single-body img { border-radius: 12px; margin: 1em 0; }
/* 文章内视频/嵌入自适应尺寸：限制最大宽度，按比例撑开高度，避免溢出 */
.single-body .kboke-embed-responsive {
    position: relative;
    width: 100%;
    max-width: var(--kboke-video-max, 560px); /* v2.3.247：桌面端视频宽度可配置（主题设置） */
    height: 0;
    margin: 1.2em auto;
    overflow: hidden;
    border-radius: 12px;
    background: #000;
}
.single-body .kboke-embed-responsive iframe,
.single-body .kboke-embed-responsive embed,
.single-body .kboke-embed-responsive video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    border: 0;
    border-radius: 12px;
}
.single-body .kboke-embed-responsive video { object-fit: contain; } /* 视频内容保持比例，不拉伸不裁剪 */
/* v2.3.225：mediaelement 兜底（即使被加载也强制不超出容器，杜绝裁切）+ wp-video 固定宽归一 */
.single-body .kboke-embed-responsive .mejs-container,
.single-body .kboke-embed-responsive .mejs-video,
.single-body .kboke-embed-responsive .mejs-layers,
.single-body .kboke-embed-responsive .mejs-layer { width: 100% !important; height: 100% !important; }
.single-body .wp-video { width: 100% !important; max-width: var(--kboke-video-max, 560px); margin: 0 auto; }
/* v2.3.223：文章内直接嵌入的视频 / oEmbed iframe：等比 16:9、不溢出，
   桌面端最大 640px 居中（调小不抢版面），移动端全宽自适应 */
.single-body .wp-block-embed {
    max-width: var(--kboke-video-max, 560px);
    margin-left: auto;
    margin-right: auto;
}
.single-body iframe,
.single-body video {
    display: block;
    max-width: var(--kboke-video-max, 560px) !important;
    height: auto !important;
    border: 0;
    border-radius: 12px;
    margin-left: auto;
    margin-right: auto;
}
.single-body iframe {
    width: 100% !important;
    aspect-ratio: 16 / 9;
}
.single-body blockquote {
    border-left: 4px solid var(--primary);
    padding: 16px 24px;
    background: var(--primary-light);
    border-radius: 0 12px 12px 0;
    margin: 1.5em 0;
    color: var(--gray);
}
.single-body code {
    background: var(--gray-100);
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 14px;
}
.single-body pre {
    background: #1e293b;
    color: var(--border-light);
    padding: 20px;
    border-radius: 12px;
    overflow-x: auto;
    margin: 1.5em 0;
}
.single-body pre code { background: none; padding: 0; }
.single-body a { color: var(--text); text-decoration: underline; text-underline-offset: 2px; }
.single-body a:hover { color: var(--primary); }
.single-body table { width: 100%; border-collapse: collapse; margin: 1.5em 0; }
.single-body th, .single-body td { border: 1px solid var(--border); padding: 10px 16px; text-align: left; }
.single-body th { background: var(--primary-light); font-weight: 600; }

.single-tags { margin-top: 36px; display: flex; gap: 8px; flex-wrap: wrap; }
.single-tags a {
    background: var(--gray-100);
    color: var(--gray);
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 13px;
    border: 1px solid var(--border);
    transition: all .2s;
}
.single-tags a:hover { background: var(--primary); color: #fff; border-color: var(--primary); }

/* 文章来源（已合并到 meta 行） */
.single-meta-source a {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: var(--gray-100);
    padding: 4px 12px;
    border-radius: 999px;
    transition: all .2s;
}
.single-meta-source a:hover {
    background: var(--primary);
    color: #fff;
}

/* 内容段落缩进 */
.single-body.is-indent p,
.page-content.is-indent .entry-content p {
    text-indent: 2em;
}
/* 以下元素不需要缩进 */
.single-body.is-indent pre,
.single-body.is-indent blockquote p,
.single-body.is-indent li p,
.single-body.is-indent figure p,
.single-body.is-indent td p,
.single-body.is-indent th p,
.single-body.is-indent .wp-caption p,
.single-body.is-indent .alignleft,
.single-body.is-indent .alignright,
.single-body.is-indent .aligncenter,
.single-body.is-indent img,
.page-content.is-indent .entry-content pre,
.page-content.is-indent .entry-content blockquote p,
.page-content.is-indent .entry-content li p,
.page-content.is-indent .entry-content figure p,
.page-content.is-indent .entry-content td p,
.page-content.is-indent .entry-content th p,
.page-content.is-indent .entry-content .wp-caption p,
.page-content.is-indent .entry-content .alignleft,
.page-content.is-indent .entry-content .alignright,
.page-content.is-indent .entry-content .aligncenter,
.page-content.is-indent .entry-content img {
    text-indent: 0;
}

/* 文章页尾版权提示 */
/* v2.3.175：文末提示去掉背景块——仅保留左侧主色竖条 + 文字，无底色无圆角 */
.single-copyright {
    margin-top: 36px;
    padding: 6px 0 6px 16px;
    background: none;
    border: none;
    border-left: 3px solid var(--primary);
    font-size: 13px;
    color: var(--gray);
    line-height: 1.7;
}
.single-copyright a {
    color: var(--text);
    text-decoration: none;
    font-weight: 500;
}
.single-copyright a:hover { color: var(--primary); text-decoration: underline; }

/* 相关文章 */
.related-posts { margin-top: 48px; }
.related-posts h2 { font-size: 22px; margin-bottom: 20px; }

/* 网格卡片（默认） */
.related-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 20px; }
.related-card {
    background: var(--card-bg, var(--white)); /* v2.3.175 半透明 */
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    transition: all .3s;
}
.related-card:hover { box-shadow: var(--shadow); }
.related-card h3 {
    font-size: 16px; line-height: 1.5;
    display: -webkit-box; -webkit-box-orient: vertical;
    -webkit-line-clamp: 1; overflow: hidden;
    word-break: break-word;
}
.related-card h3 a { color: var(--text); }
.related-card h3 a:hover { color: var(--primary); }

/* 横向滚动 — 四列网格 */
.related-scroll {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}
.related-scroll-card {
    background: var(--card-bg, var(--white)); /* v2.3.175 半透明 */
    border: 1px solid var(--border);
    border-radius: 12px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: all .3s;
}
.related-scroll-card:hover { box-shadow: var(--shadow); }
.related-scroll-card .related-thumb {
    display: block; aspect-ratio: 16 / 10; overflow: hidden;
    flex-shrink: 0;
}
.related-scroll-card .related-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.related-scroll-card h3 {
    font-size: 13px; line-height: 1.5;
    padding: 10px 12px;
    display: -webkit-box; -webkit-box-orient: vertical;
    -webkit-line-clamp: 2; line-clamp: 2;
    overflow: hidden;
    word-break: break-word;
    flex: 1;
    min-height: 0;  /* 允许 flex 收缩，避免内容撑开超过两行（v2.3.157） */
    /* v2.3.158：全局 box-sizing:border-box 下 max-height 含 padding，
       需把上下 20px padding 计入，内容区才恰好为 2 行（3em），否则第 2 行会被截半 */
    max-height: calc(3em + 20px);
}
.related-scroll-card h3 a { color: var(--text); }
.related-scroll-card h3 a:hover { color: var(--primary); }

/* 左图右文列表 — 两列网格 */
.related-media-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}
.related-media-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    background: var(--card-bg, var(--white)); /* v2.3.175 半透明 */
    border: 1px solid var(--border);
    border-radius: 10px;
    color: var(--text);
    transition: all .2s;
}
.related-media-item:hover { box-shadow: var(--shadow); color: var(--primary); }
.related-media-thumb {
    flex-shrink: 0;
    width: 52px;
    height: 52px;
    border-radius: 6px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--gray-100);
}
.related-media-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* v2.3.160：无图时显示占位图（kboke_list_thumbnail 统一输出，与分类/小工具文章列表一致） */
.related-media-body { flex: 1; min-width: 0; }
.related-media-title {
    font-size: 15px; font-weight: 600; line-height: 1.5;
    display: -webkit-box; -webkit-box-orient: vertical;
    -webkit-line-clamp: 2; overflow: hidden;
    word-break: break-word;
}

/* 简洁列表 — 竖排展示 */
.related-simple-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.related-simple-list li {
    padding: 10px 0;
    border-bottom: 1px solid var(--border);
}
.related-simple-list li:last-child { border-bottom: none; }
.related-simple-list li a {
    color: var(--text);
    font-size: 15px;
    font-weight: 500;
    line-height: 1.6;
    display: block;
}
.related-simple-list li a:before {
    content: '· ';
    /* v2.3.137：圆点装饰改中性色，hover 随文字变主色 */
    color: var(--gray);
    font-weight: 700;
    margin-right: 4px;
}
.related-simple-list li a:hover { color: var(--primary); }
.related-simple-list li a:hover:before { color: var(--primary); }

/* ==================== 分页 ==================== */
.pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 40px;
}
.pagination .page-numbers,
.pagination .dots {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 14px;
    border: 1px solid var(--border);
    border-radius: 8px;
    color: var(--text);
    font-size: 14px;
    background: var(--card-bg, var(--white)); /* v2.3.175 半透明 */
    transition: all .2s;
    white-space: nowrap;
}
.pagination .dots { border-color: transparent; background: transparent; color: var(--gray); }
.pagination .page-numbers:hover { border-color: var(--primary); color: var(--primary); }
.pagination .page-numbers.current { background: var(--primary); color: #fff; border-color: var(--primary); }

/* ==================== 页面模板 ==================== */
main .page-content,
main .kboke-page-single,
main .kboke-fullwidth-content,
main .kboke-page-fullwidth,
main .kboke-template-tags,
main .kboke-template-archives {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
}
.page-content .entry-content { font-size: 16px; line-height: 1.9; }

/* v2.3.136：页面「文字块」统一卡片样式——白底 + 圆角 + 内边距，文字不贴边。
   作用对象：普通页/全宽页正文、文章归档年份块、网址导航内容区、无结果提示、404 提示。
   404 / 无结果提示为整页居中大留白，单独保留较大垂直内边距。 */
.page-content .entry-content,
.kboke-archive-year {
    background: var(--card-bg, var(--white)); /* v2.3.175 半透明 */
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 24px var(--page-card-x, 22px);
    box-sizing: border-box;
}
.no-posts,
.error404-wrap {
    background: var(--card-bg, var(--white)); /* v2.3.175 半透明 */
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 60px var(--page-card-x, 22px);
    box-sizing: border-box;
}
/* 归档年份块卡片内调整：最后一个年份块不再留底部间距（margin 在 871 行已定义） */
.kboke-archive-year:last-child { margin-bottom: 0; }

/* ==================== 404 ==================== */
.error404-wrap { text-align: center; padding: 100px var(--page-card-x, 22px); }
.error404-wrap h1 { font-size: 80px; color: var(--text); margin-bottom: 16px; }
.error404-wrap p { font-size: 18px; color: var(--gray); margin-bottom: 30px; }

/* ==================== 搜索 ==================== */
.search-wrap { max-width: 600px; margin: 0 auto 40px; }
.search-form { display: flex; gap: 0; }
.search-form .search-field {
    flex: 1;
    padding: 14px 20px;
    border: 1px solid var(--border-blue);
    border-radius: 10px 0 0 10px;
    font-size: 15px;
    outline: none;
    transition: border-color .2s, box-shadow .2s;
}
.search-form .search-field:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 10%, transparent);
}
.search-form .search-submit {
    background: var(--primary);
    color: #fff;
    border: none;
    padding: 0 20px;
    border-radius: 0 10px 10px 0;
    font-size: 15px;
    cursor: pointer;
    transition: background .3s;
    display: flex;
    align-items: center;
    justify-content: center;
}
.search-form .search-submit:hover { background: var(--primary-hover); }

/* ==================== 无文章提示 ==================== */
.no-posts { text-align: center; padding: 60px var(--page-card-x, 22px); color: var(--gray); }
.no-posts h2 { font-size: 20px; margin-bottom: 12px; }

/* ==================== 搜索结果页 ==================== */
.search-result-title .search-result-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 28px;
    padding: 0 10px;
    background: var(--primary-light);
    color: var(--primary);
    border-radius: 999px;
    font-size: 13px;
    font-weight: 600;
    vertical-align: middle;
}
.search-in-page {
    margin: -12px 0 28px 0;
}
.search-in-page .search-wrap {
    max-width: 100%;
    margin: 0;
}
.search-in-page .search-form {
    max-width: 560px;
}

/* ==================== 两栏布局 ==================== */
.kboke-layout-wrap {
    padding: 24px 0 80px;
    overflow-x: hidden;
}
.kboke-layout {
    display: flex;
    gap: 36px;
    /* v2.3.189：恢复顶部对齐（侧栏随动功能已移除） */
    align-items: flex-start;
}
.kboke-main {
    flex: 1;
    min-width: 0;
    overflow-x: hidden;
}
.kboke-sidebar {
    width: 360px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* 无侧边栏页面内容区与容器同宽对齐，不再限制 860px 居中 */
.kboke-layout-none .kboke-main:not(.kboke-page-fullwidth) {
    width: 100%;
}
/* 无侧边栏时面包屑跟随容器全宽 */
.kboke-layout-none .lv-breadcrumb {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
}

.kboke-layout-left .kboke-sidebar {
    order: -1;
}

/* ==================== 侧边栏小工具（精致卡片） ==================== */
.kboke-sidebar .widget {
    background: var(--card-bg, var(--white));
    border: 1px solid #e8ecf1;
    border-radius: 14px;
    padding: 0;
    margin-bottom: 0;
    box-shadow: 0 1px 6px rgba(30, 41, 59, 0.05);
    overflow: hidden;
    /* v2.3.169：hover 上浮 */
    transition: box-shadow .3s ease, border-color .3s ease, transform .3s ease;
}
.kboke-sidebar .widget:hover {
    box-shadow: 0 10px 28px rgba(37, 99, 235, 0.14);
    border-color: var(--primary);
    transform: translateY(-2px);
}

/* 小工具标题 — 紧凑精致 */
.kboke-sidebar .widget-title {
    position: relative;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0;
    margin: 0;
    padding: 9px var(--page-card-x, 22px);
    background: linear-gradient(135deg, var(--primary-light) 0%, var(--white) 100%);
    color: var(--text);
    border-bottom: 1px solid #eef2f7;
    border-radius: 14px 14px 0 0;
}
.kboke-sidebar .widget-title::before {
    content: '';
    position: absolute;
    left: 0;
    top: 7px;
    bottom: 7px;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: linear-gradient(180deg, var(--primary) 0%, var(--primary-hover) 100%);
}

/* 小工具内容区内边距：统一使用 --page-card-x，与容器/卡片/页脚严格对齐 */
.kboke-sidebar .widget > *:not(.widget-title) {
    padding-left: var(--page-card-x, 22px);
    padding-right: var(--page-card-x, 22px);
}
.kboke-sidebar .widget > ul,
.kboke-sidebar .widget > div,
.kboke-sidebar .widget > form,
.kboke-sidebar .widget > p,
.kboke-sidebar .widget > table {
    padding: 22px var(--page-card-x, 22px);
    margin: 0;
}

/* 搜索框 */
.widget-search .search-form {
    display: flex;
    gap: 0;
    background: var(--gray-100);
    border: 1px solid var(--border-light);
    border-radius: 999px;
    overflow: hidden;
    margin: 10px 16px;
    padding: 4px;
    transition: border-color .25s, box-shadow .25s;
}
.widget-search .search-form:focus-within {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 10%, transparent);
}
.widget-search .search-field {
    flex: 1;
    padding: 10px 14px;
    border: none;
    background: transparent;
    font-size: 13.5px;
    outline: none;
}
.widget-search .search-submit {
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-hover) 100%);
    color: #fff;
    border: none;
    padding: 0 20px;
    border-radius: 999px;
    font-size: 13px;
    cursor: pointer;
    transition: opacity .25s, transform .2s;
}
.widget-search .search-submit:hover { opacity: .9; transform: scale(1.02); }

/* 最新文章 / 分类 / 通用列表 */
.kboke-sidebar .widget ul {
    list-style: none;
    padding: 8px 0;
    margin: 0;
}
.kboke-sidebar .widget li {
    padding: 0 18px;
    margin-bottom: 2px;
}
.kboke-sidebar .widget li a {
    display: block;
    padding: 10px 14px;
    color: var(--text);
    font-size: 14px;
    line-height: 1.6;
    border-radius: 8px;
    transition: all .2s ease;
    position: relative;
}
.kboke-sidebar .widget li a:hover {
    background: linear-gradient(135deg, #f2f6ff 0%, #f5f8ff 100%);
    color: var(--primary);
}
.kboke-sidebar .widget li a::before {
    content: '•';
    color: var(--gray);
    margin-right: 7px;
    opacity: .45;
    font-size: 13px;
}


/* ==================== 小工具通用：文章列表（最新/热门） ==================== */

/* 基础列表结构 */
.widget-recent-list,
.widget-popular-list {
    list-style: none;
    padding: 8px 0 !important;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.kboke-sidebar .widget .widget-recent-list li,
.kboke-sidebar .widget .widget-popular-list li {
    padding: 0 16px;
    margin: 0;
}

/* 通用链接样式（覆盖默认 li a 样式） */
.widget-recent-list li a,
.widget-popular-list li a {
    display: flex !important;
    align-items: flex-start;
    gap: 12px;
    padding: 0 !important;
    color: var(--text);
    border-radius: 0 !important;
    transition: opacity .2s;
}
.widget-recent-list li a::before,
.widget-popular-list li a::before {
    content: none !important;
}
.widget-recent-list li a:hover,
.widget-popular-list li a:hover {
    opacity: .9;
    color: var(--primary);
    background: transparent !important;
    padding-left: 0 !important;
}

/* 通用缩略图基础 */
.kboke-media-thumb {
    position: relative;
    flex-shrink: 0;
    border-radius: 8px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--gray-100);
}
.kboke-media-thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    display: block;
}
.kboke-thumb-placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #e0e7ff 0%, #c7d2fe 100%);
    color: var(--primary);
    font-size: 16px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* 通用内容区 */
.kboke-media-body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    align-self: center;
}
.kboke-media-title {
    font-size: 15px;
    font-weight: 600;
    line-height: 1.55;
    color: var(--text);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color .2s;
}
.widget-recent-list li a:hover .kboke-media-title,
.widget-popular-list li a:hover .kboke-media-title {
    color: var(--primary);
}
.kboke-media-excerpt {
    font-size: 13.5px;
    color: var(--muted);
    line-height: 1.55;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.kboke-media-cats {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}
.kboke-cat-tag {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 11px;
    line-height: 1.3;
    padding: 0;
    background: transparent;
    color: var(--text);
    font-weight: 500;
}
.kboke-cat-tag:hover {
    color: var(--primary);
}
.kboke-cat-tag:hover {
    opacity: .85;
}
.kboke-media-meta {
    display: flex;
    gap: 10px;
    font-size: 11.5px;
    color: var(--muted);
    align-items: center;
    flex-wrap: wrap;
}
.kboke-media-meta time,
.kboke-media-meta .views {
    margin-left: 2px;
}

/* 排名角标（热门文章专用） */
.kboke-rank-corner {
    position: absolute;
    top: 0;
    left: 0;
    width: 20px;
    height: 20px;
    background: var(--primary);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    border-radius: 0 0 8px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

/* ===== 图片展示样式：小图（默认）—— 正方形 ===== */
.kboke-thumb-size-small .kboke-media-thumb {
    width: 56px;
    aspect-ratio: 1 / 1;
    border-radius: 8px;
}
.kboke-thumb-size-small .kboke-thumb-placeholder {
    font-size: 14px;
}

/* ===== 图片展示样式：大图 —— 正方形 ===== */
.kboke-thumb-size-big .kboke-media-thumb {
    width: 100px;
    aspect-ratio: 1 / 1;
    border-radius: 10px;
}
.kboke-thumb-size-big .kboke-thumb-placeholder {
    font-size: 18px;
}

/* ===== 图片展示样式：右侧 ===== */
.kboke-thumb-right .widget-recent-list li a,
.kboke-thumb-right .widget-popular-list li a {
    flex-direction: row-reverse;
}

/* 文章卡片标签（列表页）—— 与分类区分：浅底+描边+不同色系 */
.post-card-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 10px;
}
.post-card-tag {
    display: inline-block;
    font-size: 12px;
    line-height: 1.4;
    padding: 3px 10px;
    background: var(--gray-100);
    color: var(--gray);
    border: 1px solid var(--border-light);
    border-radius: 4px;
    transition: all .2s;
}
.post-card-tag:hover {
    background: var(--gray-100);
    border-color: var(--border-light);
    color: var(--text);
}


/* 分类目录 */
.widget-cat-list li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 18px;
    margin-bottom: 2px;
}
.widget-cat-list li a {
    flex: 1;
    display: block;
    padding: 9px 12px;
    color: var(--text);
    font-size: 13.5px;
    line-height: 1.5;
    border-radius: 8px;
    transition: all .2s;
    position: relative;
}
.widget-cat-list li a::before {
    content: '•';
    color: var(--gray);
    margin-right: 7px;
    opacity: .6;
}
.widget-cat-list li a:hover {
    background: #f0f7ff;
    color: var(--primary);
    padding-left: 14px;
}
.widget-cat-count,
.widget-cat-list .count {
    flex-shrink: 0;
    background: var(--gray-100);
    color: var(--muted);
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    transition: all .2s;
    margin-left: 8px;
}
.widget-cat-list li:hover .widget-cat-count,
.widget-cat-list li:hover .count {
    background: var(--primary);
    color: #fff;
}
.widget-cat-list .children {
    width: 100%;
    margin-top: 4px;
    padding-left: 12px;
    border-left: 2px solid var(--border-light);
}
.widget-cat-list .children li {
    padding: 0;
    margin-bottom: 2px;
}
.widget-cat-list .children li a {
    font-size: 13px;
    padding: 8px 10px;
}

/* 日历小工具 */
.widget_calendar table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    margin: 0 auto;
}
.widget_calendar th,
.widget_calendar td {
    text-align: center;
    padding: 7px 3px;
    border: 1px solid var(--border);
}
.widget_calendar th {
    background: var(--primary-light);
    color: var(--primary);
    font-weight: 600;
    font-size: 12px;
}
.widget_calendar td a {
    display: inline-block;
    width: 24px;
    height: 24px;
    line-height: 24px;
    border-radius: 50%;
    background: var(--primary);
    color: #fff;
    font-weight: 600;
}
.widget_calendar caption {
    caption-side: top;
    text-align: center;
    padding: 10px;
    font-weight: 700;
    color: var(--text);
}

/* 标签云 */
/* v2.3.536：标签块两侧不再贴边。
   历史问题：这里的 `padding: 8px 0 !important` 用了 !important，
   优先级高于 `.kboke-sidebar .widget > div { padding: 22px var(--page-card-x) }`，
   导致 .tagcloud 自己把左右内边距清零 —— 视觉上标签块紧贴卡片左右边框。
   现在显式给出左右内边距（同样 !important，保证继续压过上面那条简写规则）。
   另加 `margin-inline: auto` + `max-width: 100%`，避免极窄容器下溢出。 */
.widget_tag_cloud .tagcloud,
.wp-block-tag-cloud {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 8px var(--page-card-x, 22px) !important;
    justify-content: center;
    max-width: 100%;
    box-sizing: border-box;
}
.widget_tag_cloud .tagcloud a,
.wp-block-tag-cloud a,
.tag-cloud-link {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    background: var(--gray-100);
    color: var(--text);
    padding: 5px 12px;
    border-radius: 999px;
    font-size: 13px;
    line-height: 1.5;
    transition: all .2s;
    white-space: nowrap;
}
/* 字号设置 */
.widget_tag_cloud .tagcloud.is-small a,
.wp-block-tag-cloud.is-small a {
    font-size: 12px;
    padding: 4px 10px;
}
.widget_tag_cloud .tagcloud.is-medium a,
.wp-block-tag-cloud.is-medium a {
    font-size: 13.5px;
    padding: 5px 12px;
}
.widget_tag_cloud .tagcloud.is-large a,
.wp-block-tag-cloud.is-large a {
    font-size: 15px;
    padding: 6px 14px;
}
/* v2.3.137：标签按钮禁用主色调——中性灰背景上不再叠加主色，hover 用中性加深 + 轻微上浮反馈 */
.widget_tag_cloud .tagcloud a:hover,
.wp-block-tag-cloud a:hover,
.tag-cloud-link:hover {
    background: var(--sep);
    color: var(--text);
    transform: translateY(-1px);
    box-shadow: 0 3px 10px rgba(0,0,0,0.08);
}
/* v2.3.137：计数徽章改中性色（不再用主色），hover 同步中性加深 */
.widget_tag_cloud .tagcloud a .tag-count,
.wp-block-tag-cloud a .tag-count,
.tag-cloud-link .tag-count {
    display: inline-block;
    background: var(--gray-100);
    color: var(--gray);
    font-size: 10.5px;
    padding: 1px 6px;
    border-radius: 999px;
    transition: all .2s;
    line-height: 1.5;
    margin-left: 2px;
}
.widget_tag_cloud .tagcloud a:hover .tag-count,
.wp-block-tag-cloud a:hover .tag-count,
.tag-cloud-link:hover .tag-count {
    background: rgba(0,0,0,0.06);
    color: var(--text);
}

/* 归档小工具 */
.widget_archive ul {
    list-style: none;
    padding: 8px 0;
    margin: 0;
}
.kboke-sidebar .widget_archive li {
    padding: 0 4px;
    margin-bottom: 2px;
}
.widget_archive li a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 9px 12px;
    color: var(--text);
    font-size: 13.5px;
    line-height: 1.5;
    border-radius: 8px;
    transition: all .2s;
}
.widget_archive li a:hover {
    background: #f0f7ff;
    color: var(--primary);
    padding-left: 16px;
}

/* 日历小工具 */
.widget_calendar table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.widget_calendar th,
.widget_calendar td {
    text-align: center;
    padding: 8px 4px;
    border: 1px solid var(--border);
}
.widget_calendar th {
    background: var(--primary-light);
    color: var(--primary);
    font-weight: 600;
}
.widget_calendar td a {
    display: inline-block;
    width: 24px;
    height: 24px;
    line-height: 24px;
    border-radius: 50%;
    background: var(--primary);
    color: #fff;
    font-weight: 600;
}
.widget_calendar caption {
    caption-side: top;
    text-align: center;
    font-weight: 700;
    padding: 8px 0 4px;
    color: var(--text);
}

/* 无标题小工具补充 */
.kboke-sidebar .widget p {
    font-size: 13.5px;
    line-height: 1.7;
    color: var(--gray);
}

/* ==================== 文章 meta ==================== */
.single-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.single-meta-cat a {
    display: inline-flex;
    align-items: center;
    background: var(--primary-light);
    color: var(--primary);
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
}
.single-meta-cat a:hover { background: var(--primary); color: #fff; }

/* ==================== 上下篇导航 ==================== */
.post-nav {
    display: flex;
    gap: 16px;
    margin-top: 40px;
}
.post-nav-item {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 20px 22px;
    background: var(--gray-100);
    border: 1px solid var(--border);
    border-radius: 14px;
    transition: all .25s;
    min-width: 0;
    position: relative;
    overflow: hidden;
}
.post-nav-item::before {
    content: '';
    position: absolute;
    left: 0; top: 0;
    bottom: 0;
    width: 3px;
    background: var(--primary);
    transform: scaleY(0);
    transition: transform .25s ease;
}
.post-nav-item:hover:not(.post-nav-empty) {
    border-color: var(--primary);
    background: var(--card-bg, var(--white)); /* v2.3.175 半透明 */
    box-shadow: 0 4px 20px rgba(37,99,235,0.08);
}
.post-nav-item:hover:not(.post-nav-empty)::before { transform: scaleY(1); }
.post-nav-item.post-nav-empty { background: transparent; border: none; }
.post-nav-dir {
    font-size: 12px;
    /* v2.3.137：默认中性色，hover 时父级文字变主色（交互反馈） */
    color: var(--text);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .5px;
}
.post-nav-title {
    font-size: 15px;
    color: var(--text);
    line-height: 1.5;
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* v2.3.137：上下篇 hover 时文字显示主色调 */
.post-nav-item:hover:not(.post-nav-empty) .post-nav-dir,
.post-nav-item:hover:not(.post-nav-empty) .post-nav-title { color: var(--primary); }
.post-nav-next { text-align: right; }

/* ==================== 阅读全文链接 ==================== */
.post-card-readmore {
    display: inline-block;
    margin-top: 12px;
    color: var(--text);
    font-size: 14px;
    font-weight: 600;
    transition: gap .3s;
}
.post-card-readmore:hover { color: var(--primary); }

/* ==================== 页面标题（统一头部区） ==================== */
/* 全宽 / 标签云 / 会员中心 / 搜索结果 / 文章页 / 分类 / 标签 / 归档列表页 —— 居中 + 下方分隔线 + 渐变标记（v2.3.116 归档页并入统一风格） */
.kboke-page-header,
.page-title,
.search-result-header,
.single-header,
.archive-header {
    position: relative;
    margin: 8px 0 36px;
    padding: 0 0 28px 0;
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--border);
    border-radius: 0;
    box-shadow: none;
    overflow: visible;
    text-align: center;
}
.kboke-page-header::after,
.page-title::after,
.search-result-header::after,
.single-header::after,
.archive-header::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: -1px;
    transform: translateX(-50%);
    width: 60px;
    height: 3px;
    background: linear-gradient(90deg, var(--primary), var(--primary-light));
    border-radius: 3px;
}
/* 归档页不再使用左竖条装饰——`.archive-header::before` 已并入下方
   「分类/归档列表页头部」的统一规则组，此处不再重复声明（v2.3.468 去重）。 */

.kboke-page-header-title,
.page-title,
.search-result-title,
.archive-title {
    margin: 0 0 10px 0;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--text);
    letter-spacing: -0.01em;
    text-align: center;
}

.kboke-page-header-desc,
.search-result-header .search-result-count,
.search-in-page + .post-list .archive-count,
.archive-description {
    margin: 0 auto;
    font-size: 14px;
    line-height: 1.65;
    color: var(--muted);
    text-align: center;
    max-width: 560px;
}

.archive-description + .archive-count,
.archive-title + .archive-count {
    margin-top: 10px;
}

/* v2.3.95 — 兜底：去除页面 H1 区域被任何外框/卡片样式包裹（非归档页） */
.kboke-page-header,
.page-title,
.search-result-header,
.single-header {
    background: transparent !important;
    border-left: none !important;
    border-right: none !important;
    border-top: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: none !important;
}

/* ==================== 分类/归档列表页头部补充样式（共享上面的统一 header 规则） ==================== */
/* archive-header / archive-title / archive-description 的容器/标题/描述样式已合并到上方「页面标题（统一头部区）」，
   这里仅补充 archive-count（文章数胶囊）等独立样式。 */

.archive-description + .archive-count,
.archive-title + .archive-count {
    margin-top: 10px;
}

.archive-count {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 8px 0 0 0;
    padding: 4px 10px;
    background: var(--primary-light);
    color: var(--primary);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
}

.kboke-page-header-count,
.kboke-page-header-desc + .kboke-page-header-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 5px 12px;
    background: var(--primary-light);
    color: var(--primary);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
}

/* ==================== 响应式 ==================== */
@media (max-width: 768px) {
    h1 { font-size: 28px; }
    .btn, .wx-pill { width: 100%; text-align: center; min-height: 48px; }
    .kboke-footer-grid { flex-direction: column; gap: 30px; }
    .kboke-footer-brand { text-align: center; }
    .kboke-footer-desc { margin-left: auto; margin-right: auto; }
    .kboke-footer-bottom .kboke-footer-inner { flex-direction: column; text-align: center; gap: 8px; }

    /* 移动端统一文字留白：面包屑、标签云、页脚（页面正文/归档/导航页已是卡片，由卡片自身内边距负责） */
    .lv-breadcrumb { padding: 18px var(--page-card-x) 12px; }
    .kboke-footer-inner.container { padding: 0 var(--page-card-x) !important; }

    /* 移动端汉堡菜单 */
    .header-toggle { display: flex; }
    .header-wx { display: none; }
    .header-nav {
        display: none;
        position: absolute;
        /* v2.3.510：原为 72px，但 v2.3.188 已把头部高度改成 60px（见 .header-inner），
           改高度时漏改此处，导致下拉菜单与头部之间留下 12px 缝隙——
           菜单悬空、下面内容从缝里透出来，移动端一眼可见。
           这里改用 100%（相对定位父级底部），以后调整头部高度无需再同步本值。 */
        top: 100%;
        left: 0;
        right: 0;
        max-width: none;
        background: #fff; /* v2.3.176：移动端搜索展开框不透明 */
        border-bottom: 1px solid var(--border);
        box-shadow: 0 4px 12px rgba(0,0,0,0.08);
        padding: 18px 22px;
        margin-left: 0;
    }
    .header-nav.open {
        display: block;
    }
    .header-nav ul {
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
        white-space: normal;
    }
    .header-nav a { font-size: 17px; font-weight: 700; display: block; padding: 6px 0; white-space: normal; }
    /* 移动端子菜单：内嵌展开（手风琴）。v2.3.126：li 用 flex 布局，
       展开按钮在文档流内（不再 absolute），彻底避免子菜单按钮与父项按钮重叠拦截点击 */
    .header-nav li { width: 100%; }
    .header-nav li > a { width: 100%; }
    /* 带子菜单的父项：li = flex，菜单文字靠左、展开符号在右、子菜单整行换行到下一行（v2.3.222） */
    .header-nav li.menu-item-has-children {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 4px 12px; /* 行内 12px 留白：符号与文字不紧贴，避免误触 */
    }
    .header-nav li.menu-item-has-children > a {
        flex: 1;
        min-width: 0;
        display: flex;
        align-items: center;
        justify-content: flex-start; /* 菜单文字靠左对齐 */
        gap: 10px;
    }
    .header-nav li.menu-item-has-children > a::after { display: none; } /* 三角移入按钮 */
    /* 独立展开按钮（v2.3.222：符号在右侧，文字左侧对齐；40×40 触摸区防误触） */
    .header-nav .kboke-submenu-toggle {
        position: static;
        transform: none;
        width: 40px;
        height: 40px;
        flex-shrink: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border: none;
        background: transparent;
        color: var(--muted);
        cursor: pointer;
        border-radius: 8px;
        padding: 0;
    }
    .header-nav .kboke-submenu-toggle:hover { color: var(--primary); }
    .header-nav .kboke-submenu-toggle svg {
        display: block;
        transition: transform .2s ease;
    }
    .header-nav li.menu-item-has-children.open > .kboke-submenu-toggle svg {
        transform: rotate(180deg);
    }
    .header-nav ul.sub-menu {
        position: static;
        visibility: visible;
        opacity: 1;
        transform: none;
        min-width: 0;
        background: var(--gray-100);
        border: none;
        border-radius: 8px;
        box-shadow: none;
        padding: 4px 0;
        margin: 4px 0 4px 12px;
        gap: 2px;
        flex-direction: column;
        align-items: stretch;
        display: none;
        width: 100%;
        flex-basis: 100%; /* 换行到父项下方整行 */
    }
    .header-nav li.menu-item-has-children.open > ul.sub-menu {
        display: flex;
    }
    .header-nav ul.sub-menu a {
        /* v2.3.159：与一级菜单一致（17px / 700） */
        font-size: 17px;
        font-weight: 700;
        padding: 8px 14px;
        white-space: normal;
        background: transparent;
    }
    .header-nav ul.sub-menu a:hover,
    .header-nav ul.sub-menu a:focus { background: var(--white); } /* v2.3.176：不透明 */
    .header-nav ul.sub-menu ul.sub-menu {
        top: auto;
        left: auto;
        margin-left: 8px;
    }

    /* 移动端文章页 */
    .kboke-layout-wrap { padding: 16px var(--page-card-x, 22px) 40px; overflow-x: hidden; }
    .kboke-layout { width: 100%; }
    .kboke-main { width: 100%; min-width: 0; overflow-x: hidden; }
    .single-content { width: 100%; max-width: 100%; padding: 20px var(--page-card-x, 22px) 4px; overflow-x: hidden; box-sizing: border-box; }
    /* single-content 已带左右内边距，single-header 不再额外缩进，避免标题比正文更靠里/更靠外 */
    .single-header { padding: 0; text-align: left; }
    .single-title { font-size: 21px; line-height: 1.4; overflow-wrap: break-word; word-break: break-word; max-width: 100%; }
    .single-meta { margin-top: 12px; gap: 4px 12px; flex-wrap: wrap; justify-content: flex-start; }
    .single-body { font-size: 15.5px; line-height: 1.85; overflow-wrap: anywhere; word-break: break-word; width: 100%; max-width: 100%; }
    .single-body h2 { font-size: 21px; overflow-wrap: anywhere; }
    .single-body h3 { font-size: 18px; overflow-wrap: anywhere; }
    /* v2.3.98：图片/视频/嵌入强制最大宽度，覆盖 WordPress 内联 width 属性，杜绝超出屏宽
       v2.3.223：iframe 改用 16:9 等比自适应，修复 height:auto 把视频压扁/显示不全 */
    .single-body img,
    .single-body video { max-width: 100% !important; height: auto; }
    .single-body iframe,
    .single-body embed,
    .single-body object { max-width: 100% !important; width: 100% !important; height: auto !important; aspect-ratio: 16 / 9; }
    .single-body .wp-block-image img,
    .single-body .wp-block-media-text img { max-width: 100% !important; }
    .single-body blockquote { padding: 12px 16px; margin: 1.2em 0; border-radius: 8px; overflow-wrap: anywhere; }
    .single-body pre { padding: 14px; border-radius: 10px; overflow-x: auto; max-width: 100%; }
    .single-body table { font-size: 13px; display: block; overflow-x: auto; max-width: 100%; }
    .single-body th, .single-body td { padding: 8px 10px; word-break: break-word; }
    .single-copyright { overflow-wrap: anywhere; word-break: break-word; }
    .kboke-author-box { padding: 18px; gap: 14px; }
    .kboke-author-avatar { width: 52px; height: 52px; flex-shrink: 0; }
    .post-nav-item { padding: 16px 18px; }
    .post-nav-item-title { overflow-wrap: anywhere; word-break: break-word; }

    /* 移动端列表页 */
    .kboke-layout-wrap { padding: 16px var(--page-card-x, 18px) 40px; }
    .post-list { padding: 0 0 20px; }
    .post-card { padding: var(--page-card-x, 18px); margin-bottom: 16px; border-radius: 14px; }
    .post-card-title { font-size: 17px; }
    /* 确保卡片内容不溢出 */
    .post-card img { max-width: 100%; height: auto; }

    /* 移动端侧边栏：仅调整标题与直接子容器留白，不破坏内部 flex 图文列表（最新/热门/随机） */
    .kboke-sidebar .widget-title { padding: 8px var(--page-card-x, 18px); font-size: 14px; }
    .kboke-sidebar .widget > ul,
    .kboke-sidebar .widget > div,
    .kboke-sidebar .widget > form,
    .kboke-sidebar .widget > p,
    .kboke-sidebar .widget > table {
        padding: 16px var(--page-card-x, 18px);
    }
    /* 注意：下列规则只针对“纯文字列表”小工具（分类树/归档/友情链接等），
       不再用 .widget li / .widget li a 的通配覆盖，以免破坏 .widget-recent-list 等 flex 图文列表 */
    .widget-cat-list li { padding: 0 16px; }
    .widget-cat-list li a { padding: 10px 12px; }
    .widget-search .search-form { margin: 10px var(--page-card-x, 18px); }

    /* 移动端文字类内容统一加水平留白，防止贴边 */
    /* 所有页面 H1：居中（v2.3.116 归档页并入统一风格） */
    .kboke-page-header,
    .page-title,
    .search-result-header,
    .single-header,
    .archive-header { margin-bottom: 28px; padding-bottom: 22px; text-align: center; }
    /* v2.3.143：文章页标题靠左，不随列表页标题组居中 */
    .single-header { text-align: left; }
    /* v2.3.173：移动端页面标题（普通页/全宽页）左对齐，与下方正文左侧对齐 */
    .page-title { text-align: left; }
    .kboke-page-header-title,
    .page-title,
    .search-result-title,
    .single-title,
    .archive-title { font-size: 22px; letter-spacing: 0; }
    .archive-description { font-size: 12px; }
    .archive-count { font-size: 11px; padding: 3px 8px; }
    /* .single-content 已带左右内边距，single-header 不再额外缩进，避免标题/meta 比正文更靠右 */
    .single-header { padding-left: 0; padding-right: 0; }
    .widget_tag_cloud .tagcloud,
    .wp-block-tag-cloud { padding: 8px var(--page-card-x) !important; }

    /* v2.3.536：标签云小工具标签块两侧不贴边（移动端同样保证左右安全距离） */
    .widget_tag_cloud .tagcloud a,
    .wp-block-tag-cloud a { max-width: 100%; }

    .related-grid { grid-template-columns: 1fr; }
    .related-scroll { grid-template-columns: repeat(2, 1fr); }
    .related-media-list { grid-template-columns: 1fr; }
    .related-media-thumb { width: 44px; height: 44px; }
    .related-card { overflow: hidden; word-break: break-word; overflow-wrap: anywhere; }
    .related-card-title { overflow-wrap: anywhere; word-break: break-word; }
    .pagination .page-numbers,
    .pagination .dots {
        min-width: 36px;
        height: 36px;
        padding: 0 10px;
        font-size: 13px;
    }

    /* v2.3.97 —— 移动端贴边终极防护
       兜底覆盖所有页面 H1 / 文字容器，防止文字超出可视区域、与屏幕边缘贴齐。
       v2.3.123：用 overflow-x: clip 而非 hidden，避免破坏 position:sticky（固定导航）。 */
    html, body { overflow-x: clip; }

    /* 所有页面的页面/模块头部 H1 都在移动端补足水平内边距（.error404-wrap/.no-posts 已卡片化由自身内边距负责，v2.3.136）
       v2.3.174：.single-header 不在此列——它嵌套在 .single-content 内（卡片已带内边距），
       此前被本组 !important 二次缩进导致文章页标题/meta 比正文更靠右，现已移除。 */
    .kboke-page-header,
    .page-title,
    .search-result-header,
    .archive-header,

    /* 标题与文字容器：禁止超长无空格字符串撑破版心 */
    .kboke-page-header-title,
    .page-title,
    .search-result-title,
    .single-title,
    .archive-title,
    .error404-wrap h1 { overflow-wrap: anywhere; word-break: break-word; }

    /* 列表页 / 归档页 / 搜索结果 / 默认页 + 全宽 / 模板页 —— 内容容器水平内边距 */
    .kboke-layout-wrap { padding: 16px var(--page-card-x, 18px) 40px; overflow-x: hidden; }
    .kboke-main { min-width: 0; overflow-x: hidden; }
    .post-list, .post-card-list { overflow-x: hidden; }
    .post-card { padding: var(--page-card-x, 18px); margin-bottom: 16px; border-radius: 14px; overflow: hidden; word-break: break-word; }
    .post-card-title { font-size: 17px; overflow-wrap: anywhere; word-break: break-word; }
    .post-card-excerpt, .post-card-content { overflow-wrap: anywhere; word-break: break-word; }
    .post-card img { max-width: 100%; height: auto; }

    /* 全宽模板 / page 模板 / 标签云 —— 内容容器水平内边距（v2.3.113 加 !important 覆盖桌面端 padding:0）
       注：.page-content .entry-content 已卡片化（v2.3.136），由卡片自身内边距控制。 */
    main .kboke-template-tags,
    main .kboke-page-fullwidth,
    main .kboke-page-single,
    main .kboke-fullwidth-content { padding: 0 var(--page-card-x, 18px) !important; overflow-x: hidden; }
    /* v2.3.136：卡片化文字块的移动端内边距（略小于桌面端，适配窄屏）
       v2.3.174：水平内边距与页面标题统一为 var(--page-card-x)（22px），保证标题与正文左侧对齐 */
    .page-content .entry-content,
    .kboke-archive-year,
    .no-posts,
    .error404-wrap { padding: 20px var(--page-card-x, 22px) !important; border-radius: 12px; }
    .page-content .entry-content p,
    .page-content .entry-content h2,
    .page-content .entry-content h3,
    .page-content .entry-content h4 { overflow-wrap: anywhere; word-break: break-word; }

    /* 评论区、作者卡片、上下篇导航统一安全 padding */
    .comments-area { padding: 0 var(--page-card-x, 12px); overflow-x: hidden; }
    .kboke-author-box { padding: 18px; gap: 14px; overflow: hidden; word-break: break-word; }
    .post-nav { overflow: hidden; }

    /* 元素图、表单、按钮：强制 max-width / word-break */
    img, video, iframe, embed, object { max-width: 100%; height: auto; }
    table { max-width: 100%; }
    pre, code { white-space: pre-wrap; word-break: break-word; }

    /* 隐藏桌面端元素 */
    .kboke-sidebar-hide-mobile { display: none; }

    /* 两栏布局移动端堆叠 */
    .kboke-layout { flex-direction: column; gap: 20px; width: 100%; }
    .kboke-sidebar { width: 100% !important; position: static; }
    /* v2.3.98：移除会裁剪图文列表缩略图的 overflow:hidden，恢复小工具原样 */

    /* 上下篇导航移动端纵向 */
    .post-nav { flex-direction: column; }
    .post-nav-next { text-align: left; }
}

/* ==================== 平板端适配 (768px ~ 1024px) ==================== */
@media (min-width: 769px) and (max-width: 1024px) {
    .kboke-layout { gap: 24px; }
    .single-content { padding: 24px var(--page-card-x, 18px) 6px; }
    .single-body img { max-width: 100%; height: auto; }
    .post-card { padding: var(--page-card-x, 18px); }
}

/* ==================== 列表页新样式 ==================== */

/* 时间线布局 */
.post-list-style-timeline {
    position: relative;
    padding-left: 30px;
    padding-right: var(--page-card-x, 22px);
}
.post-list-style-timeline::before {
    content: '';
    position: absolute;
    left: 8px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: var(--border);
}
.post-card-style-timeline {
    position: relative;
    background: var(--card-bg, var(--white)); /* v2.3.175 半透明 */
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 16px;
    transition: all .25s;
}
.post-card-style-timeline::before {
    content: '';
    position: absolute;
    left: -26px;
    top: 24px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--primary);
    border: 3px solid var(--white);
    box-shadow: 0 0 0 2px var(--primary-light);
}
.post-card-style-timeline:hover {
    box-shadow: 0 8px 24px rgba(37,99,235,.08);
    transform: translateX(4px);
    border-color: var(--border-blue);
}
.post-card-style-timeline .post-card-title { font-size: 17px; margin-bottom: 6px; }
.post-card-style-timeline .post-card-meta { font-size: 12px; color: var(--muted); margin-bottom: 8px; }
.post-card-style-timeline .post-card-excerpt { font-size: 13px; color: var(--gray); line-height: 1.6; }

/* 杂志卡片布局 */
.post-list-style-magazine {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}
.post-card-style-magazine {
    background: var(--card-bg, var(--white)); /* v2.3.175 半透明 */
    border: 1px solid var(--border);
    border-radius: 16px;
    overflow: hidden;
    transition: all .25s;
}
.post-card-style-magazine:hover {
    box-shadow: 0 12px 32px rgba(30,41,59,.1);
    transform: translateY(-4px);
}
.post-card-style-magazine .post-card-thumb {
    width: 100%;
    height: 200px;
    overflow: hidden;
}
.post-card-style-magazine .post-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s;
}
.post-card-style-magazine:hover .post-card-thumb img {
    transform: scale(1.05);
}
.post-card-style-magazine .post-card-body {
    padding: 20px var(--page-card-x, 22px);
}
.post-card-style-magazine .post-card-title { font-size: 17px; margin-bottom: 8px; }
.post-card-style-magazine .post-card-excerpt { font-size: 13px; color: var(--gray); line-height: 1.6; margin-bottom: 12px; }
.post-card-style-magazine .post-card-meta { font-size: 12px; color: var(--muted); }

/* 移动端新模块适配 */
@media (max-width: 768px) {
    .post-list-style-magazine { grid-template-columns: 1fr; }
    /* v2.3.133：移动端时间线同样由 .container 提供留白，容器不再额外缩进 */
    .post-list-style-timeline { padding-left: 24px; padding-right: 0; }
    .post-card-style-timeline::before { left: -20px; width: 10px; height: 10px; }
}

/* ==================== 文章增强功能样式 ==================== */

/* 点赞按钮 */
.single-like-wrap {
    display: flex;
    justify-content: center;
    margin: 32px 0 24px;
}
.single-like-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 32px;
    background: var(--white);
    border: 2px solid var(--primary);
    border-radius: 999px;
    color: var(--primary);
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: all .3s;
}
.single-like-btn:hover {
    background: var(--primary);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(37,99,235,0.25);
}
.single-like-btn.liked {
    background: var(--primary);
    color: #fff;
    border-color: var(--primary);
    cursor: default;
    opacity: .8;
}
.single-like-btn.liked:hover {
    transform: none;
    box-shadow: none;
}
.single-like-icon { font-size: 18px; }
.single-like-count {
    background: rgba(37,99,235,0.1);
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 13px;
}
.single-like-btn.liked .single-like-count {
    background: rgba(255,255,255,0.25);
}

/* 作者介绍 */
.kboke-author-box {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 22px 24px;
    background: linear-gradient(135deg, var(--gray-100) 0%, var(--white) 100%);
    border: 1px solid var(--border);
    border-radius: 16px;
    margin: 28px 0;
}
.kboke-author-avatar-link { flex-shrink: 0; }
.kboke-author-avatar {
    width: 64px; height: 64px;
    border-radius: 50%;
    display: block;
    border: 3px solid var(--white);
    box-shadow: 0 2px 8px rgba(0,0,0,.08);
}
.kboke-author-info { flex: 1; min-width: 0; }
.kboke-author-name {
    font-size: 16px;
    font-weight: 700;
    color: var(--text);
    text-decoration: none;
}
.kboke-author-name:hover { color: var(--primary); }
.kboke-author-desc {
    font-size: 13px;
    color: var(--gray);
    line-height: 1.6;
    margin: 6px 0 0;
}

/* ==================== 作者主页（用户主页，v2.3.121） ==================== */
.kboke-author-page {
    display: flex;
    gap: 28px;
    align-items: flex-start;
    padding: 32px;
    background: var(--card-bg, var(--white)); /* v2.3.175 半透明 */
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: var(--shadow-sm);
    margin-bottom: 28px;
}
.kboke-author-page-avatar-wrap { flex-shrink: 0; }
.kboke-author-page-avatar {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    object-fit: cover;
    display: block;
    border: 4px solid var(--white);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.10);
    background: var(--gray-100);
}
.kboke-author-page-info { flex: 1; min-width: 0; }
.kboke-author-page-name {
    font-size: 24px;
    font-weight: 700;
    color: var(--text);
    margin: 0 0 10px;
    line-height: 1.3;
    overflow-wrap: anywhere;
    word-break: break-word;
}
.kboke-author-page-url {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--primary);
    font-size: 13px;
    margin: 0 0 10px;
    overflow-wrap: anywhere;
    word-break: break-all;
}
.kboke-author-page-url:hover { text-decoration: underline; }
.kboke-author-page-bio {
    font-size: 14px;
    color: var(--gray);
    line-height: 1.7;
    margin: 0 0 14px;
    max-width: 640px;
}
.kboke-author-page-stats {
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
}
.kboke-author-page-stat {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    font-size: 13px;
    color: var(--muted);
}
.kboke-author-page-stat-num {
    font-size: 20px;
    font-weight: 700;
    color: var(--primary);
}
.kboke-author-page-posts-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--text);
    margin: 0 0 18px;
    padding-left: 12px;
    border-left: 4px solid var(--primary);
    overflow-wrap: anywhere;
    word-break: break-word;
}
/* 暗色模式：作者卡片用 --white 变量自动适配；文章卡片 hover 主色边框沿用全局 */
html[data-theme="dark"] .kboke-author-page {
    border-color: var(--border);
    box-shadow: none;
}
/* 移动端作者主页 */
@media (max-width: 768px) {
    .kboke-author-page {
        flex-direction: column;
        align-items: center;
        text-align: center;
        padding: 24px 20px;
        gap: 16px;
    }
    .kboke-author-page-avatar { width: 96px; height: 96px; }
    .kboke-author-page-name { font-size: 20px; }
    .kboke-author-page-url { justify-content: center; }
    .kboke-author-page-bio,
    .kboke-author-page-posts-title { text-align: left; }
    .kboke-author-page-stats { justify-content: center; }
}

/* 文章目录（TOC） */
.kboke-toc {
    background: var(--gray-100);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 16px 20px;
    margin: 24px 0;
}
.kboke-toc-title {
    font-size: 15px;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border);
}
.kboke-toc-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.kboke-toc-item {
    margin-bottom: 4px;
}
.kboke-toc-item a {
    display: block;
    padding: 6px 10px;
    color: var(--gray);
    font-size: 14px;
    line-height: 1.5;
    border-radius: 6px;
    transition: all .2s;
    text-decoration: none;
}
.kboke-toc-item a:hover {
    background: #e0e7ff;
    color: var(--primary);
}
.kboke-toc-item a.active {
    background: var(--primary-light);
    color: var(--primary);
    font-weight: 600;
}
.kboke-toc-h2 a { padding-left: 10px; font-weight: 600; }
.kboke-toc-h3 a { padding-left: 26px; }
.kboke-toc-h4 a { padding-left: 42px; font-size: 13px; }

/* 图片点击放大（Lightbox） */
.kboke-lightbox {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 10000;
}
.kboke-lightbox.active {
    display: flex;
    align-items: center;
    justify-content: center;
}
.kboke-lightbox-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.85);
    cursor: zoom-out;
}
.kboke-lightbox-content {
    position: relative;
    z-index: 1;
    max-width: 90vw;
    max-height: 90vh;
}
.kboke-lightbox-content img {
    max-width: 90vw;
    max-height: 90vh;
    object-fit: contain;
    border-radius: 8px;
    box-shadow: 0 8px 40px rgba(0,0,0,0.3);
}
.kboke-lightbox-close {
    position: absolute;
    top: -40px;
    right: 0;
    width: 36px;
    height: 36px;
    border: none;
    background: rgba(255,255,255,0.15);
    color: #fff;
    font-size: 24px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .2s;
}
.kboke-lightbox-close:hover {
    background: rgba(255,255,255,0.3);
}

/* 代码高亮 */
.single-body pre {
    position: relative;
    background: #1e293b;
    color: var(--border-light);
    padding: 40px 16px 16px;
    border-radius: 10px;
    overflow-x: auto;
    font-size: 13px;
    line-height: 1.6;
}
.kboke-code-header {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 14px;
    background: rgba(255,255,255,0.06);
    border-radius: 10px 10px 0 0;
}
.kboke-code-lang {
    font-size: 12px;
    color: var(--muted);
    font-weight: 500;
}
.kboke-code-copy {
    padding: 4px 12px;
    background: rgba(255,255,255,0.1);
    border: none;
    border-radius: 6px;
    color: var(--muted);
    font-size: 12px;
    cursor: pointer;
    transition: all .2s;
}
.kboke-code-copy:hover {
    background: rgba(255,255,255,0.2);
    color: #fff;
}
.single-body pre .code-keyword { color: #c084fc; }
.single-body pre .code-string { color: #86efac; }
.single-body pre .code-comment { color: var(--gray); font-style: italic; }
.single-body pre .code-number { color: #fbbf24; }


/* 移动端适配增强功能 */
@media (max-width: 768px) {
    .kboke-author-box { flex-direction: column; text-align: center; }
    .kboke-author-avatar { width: 56px; height: 56px; }
    .single-like-btn { padding: 10px 24px; font-size: 14px; }
    .kboke-toc { padding: 14px 16px; }
    .kboke-toc-h3 a { padding-left: 20px; }
    .kboke-toc-h4 a { padding-left: 34px; }
    .kboke-lightbox-close { top: -36px; width: 32px; height: 32px; font-size: 20px; }
}


/* 按钮兼容 <button> 元素 */
button.btn {
    font-family: inherit;
    appearance: none;
    -webkit-appearance: none;
    line-height: 1.4;
}


/* ============================================================
   v2.3.167：侧边栏小工具样式（关于我/社交主页、友情链接、广告）
   ============================================================ */

/* —— 关于我 / 社交主页小工具 —— */
.kboke-sidebar .widget-profile .kboke-profile-widget {
    padding: 20px var(--page-card-x, 22px) 22px;
}
/* 头像 + 信息横排 */
.kboke-profile-head {
    display: flex;
    align-items: center;
    gap: 14px;
    text-align: left;
    margin-bottom: 16px;
}
.kboke-profile-avatar {
    display: block;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    object-fit: cover;
    flex: none;
    border: 3px solid #fff;
    box-shadow: 0 3px 10px rgba(30, 41, 59, 0.16);
    background: #fff;
}
.kboke-profile-avatar-ph {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-hover) 100%);
    color: #fff;
    font-size: 24px;
    font-weight: 700;
}
.kboke-profile-info {
    flex: 1;
    min-width: 0;
}
.kboke-profile-name {
    font-size: 15px;
    font-weight: 700;
    color: var(--text);
    margin: 0 0 4px;
    line-height: 1.4;
}
.kboke-profile-desc {
    font-size: 12.5px;
    color: var(--muted);
    line-height: 1.6;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* 微信 / 公众号二维码：左右并排；单张居中 */
.kboke-profile-qrs {
    display: flex;
    justify-content: center;
    gap: 26px;
    margin-bottom: 4px;
}
.kboke-profile-qrs.is-single {
    justify-content: center;
}
.kboke-profile-qr {
    margin: 0;
    width: 106px;
    text-align: center;
}
.kboke-profile-qr img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    border: 1px solid var(--border-light);
    background: #fff;
    padding: 4px;
    box-sizing: border-box;
    box-shadow: 0 2px 8px rgba(30, 41, 59, 0.08);
}
.kboke-profile-qr figcaption {
    margin-top: 6px;
    font-size: 12px;
    color: var(--muted);
    line-height: 1.5;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* v2.3.199：1~3 个按钮居中一行显示 */
.kboke-profile-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-top: 14px;
}
.kboke-profile-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 7px 18px;
    background: var(--primary); /* 降级：不支持 color-mix 的浏览器使用纯主色 */
    background: linear-gradient(135deg, var(--primary), color-mix(in srgb, var(--primary) 75%, #4f46e5));
    color: #fff;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 500;
    text-align: center;
    text-decoration: none;
    box-shadow: 0 2px 8px rgba(37, 99, 235, 0.18);
    transition: opacity .2s ease, transform .2s ease, box-shadow .2s ease;
}
.kboke-profile-btn:hover {
    color: #fff;
    opacity: .92;
    transform: translateY(-2px);
    box-shadow: 0 5px 14px rgba(37, 99, 235, 0.30);
}

/* —— 广告小工具 —— */
.kboke-sidebar .widget-ad .kboke-ad-widget {
    padding: 12px var(--page-card-x, 22px) 18px;
    text-align: center;
}
.kboke-ad-widget img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(30, 41, 59, 0.10);
    transition: opacity .2s ease;
}
.kboke-ad-widget a:hover img {
    opacity: .9;
}

/* ==================== 无障碍跳转链接（v2.3.168 修复：默认隐藏，聚焦时显示） ==================== */
.skip-link {
    position: absolute;
    left: -9999px;
    top: 0;
    z-index: 100001;
    padding: 10px 18px;
    background: var(--primary);
    color: #fff;
    border-radius: 0 0 10px 0;
    font-size: 14px;
    text-decoration: none;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
    transition: left 0s;
}
.skip-link:focus {
    left: 0;
    color: #fff;
}

/* ============================================================
   v2.3.180：文章底部 CAT 引导卡片
   v2.3.184：仅保留二维码 + 卡片文字；桌面左右布局（二维码左、文字右），手机上下居中
   ============================================================ */
/* v2.3.185：去掉背景块——卡片无背景/边框/阴影，仅保留内容与上间距 */
.kboke-single-cat {
    margin-top: 24px;
    padding: 0;
    background: none;
    border: none;
    border-radius: 0;
    box-shadow: none;
}
.kboke-single-cat-body {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 48px; /* v2.3.184：桌面二维码与文字左右布局，间距较大 */
    flex-wrap: wrap;
}
.kboke-single-cat-qr img {
    width: 150px; /* v2.3.184：桌面二维码再大一些 */
    height: auto;
    border-radius: 8px;
    border: 1px solid var(--border-light);
    background: #fff;
    padding: 4px;
    box-sizing: border-box;
    box-shadow: 0 2px 8px rgba(30, 41, 59, 0.08);
}
.kboke-single-cat-text {
    font-size: 15px;
    font-weight: 700;
    color: var(--text);
    margin: 0;
    line-height: 1.7;
    text-align: left;
    max-width: 340px;
}
/* 仅二维码（无文字）时居中 */
.kboke-single-cat-body.is-qr-only {
    gap: 0;
}
@media (max-width: 767px) {
    .kboke-single-cat-body { flex-direction: column; gap: 14px; }
    .kboke-single-cat-qr img { width: 21px; } /* v2.3.186：手机端再缩到上一版（42px）的一半 */
    .kboke-single-cat-text { text-align: center; max-width: 100%; }
}

.kboke-contact-wrap {
    margin-top: 28px;
    padding: 24px var(--page-card-x, 22px);
    background: var(--card-bg, var(--white, #fff));
    border: 1px solid var(--border, #e2e8f0);
    border-radius: 12px;
}
.kboke-contact-title {
    margin: 0 0 16px;
    font-size: 18px;
    color: var(--text, #1e293b);
}
.kboke-contact-result {
    padding: 10px 14px;
    margin-bottom: 14px;
    border-radius: 8px;
    font-size: 14px;
}
.kboke-contact-result.is-success {
    background: #e7f6ec;
    color: #1a7f37;
}
.kboke-contact-result.is-error {
    background: #fbeaea;
    color: #b32d2d;
}
.kboke-contact-row {
    margin-bottom: 16px;
}
.kboke-contact-row label {
    display: block;
    margin-bottom: 6px;
    font-size: 13px;
    color: var(--text, #1e293b);
}
.kboke-contact-row label em {
    color: #dc2626;
    font-style: normal;
}
.kboke-contact-row input[type="text"],
.kboke-contact-row input[type="email"],
.kboke-contact-row textarea {
    width: 100%;
    max-width: 640px;
    box-sizing: border-box;
    padding: 9px 12px;
    font-size: 14px;
    color: var(--text, #1e293b);
    background: var(--white, #fff);
    border: 1px solid var(--border, #d7dee7);
    border-radius: 8px;
    transition: border-color .2s ease;
}
.kboke-contact-row input:focus,
.kboke-contact-row textarea:focus {
    outline: none;
    border-color: var(--primary, #2563eb);
}
.kboke-contact-row textarea {
    resize: vertical;
}
.kboke-contact-row .kboke-btn {
    display: inline-block;
    padding: 10px 26px;
    font-size: 14px;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    background: var(--primary, #2563eb);
    color: #fff;
    transition: opacity .2s ease;
}
.kboke-contact-row .kboke-btn:hover {
    opacity: .88;
}

/* ============ v2.3.223 文章图集查看器 ============ */
.kboke-gallery { margin: 0 0 26px; }
.kboke-gallery-stage {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
}
.kboke-gallery-main {
    flex: 1;
    min-width: 0;
    aspect-ratio: 16 / 10;
    background: #f1f5f9;
    border-radius: 12px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}
.kboke-gallery-main img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    margin: 0;
    border-radius: 0;
}
.kboke-gallery-prev,
.kboke-gallery-next {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border: 1px solid var(--border, #e2e8f0);
    border-radius: 50%;
    background: #fff;
    color: var(--text, #1e293b);
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: border-color .2s, color .2s;
}
.kboke-gallery-prev:hover,
.kboke-gallery-next:hover { border-color: var(--primary, #2563eb); color: var(--primary, #2563eb); }
.kboke-gallery-index {
    position: absolute;
    right: 12px;
    bottom: 12px;
    background: rgba(0, 0, 0, .55);
    color: #fff;
    font-size: 12px;
    padding: 3px 10px;
    border-radius: 999px;
}
.kboke-gallery-thumbs {
    display: flex;
    gap: 8px;
    margin-top: 12px;
    overflow-x: auto;
    padding-bottom: 4px;
}
.kboke-gallery-thumb {
    flex-shrink: 0;
    width: 64px;
    height: 64px;
    border: 2px solid transparent;
    border-radius: 8px;
    overflow: hidden;
    padding: 0;
    background: #f1f5f9;
    cursor: pointer;
    transition: border-color .2s;
}
.kboke-gallery-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    margin: 0;
    border-radius: 0;
}
.kboke-gallery-thumb.is-active { border-color: var(--primary, #2563eb); }
@media (max-width: 768px) {
    .kboke-gallery-prev,
    .kboke-gallery-next { width: 36px; height: 36px; font-size: 20px; }
}

/* ============ v2.3.228 恢复：友情链接小工具（v2.3.213 误删，自 2.3.212 还原） ============ */
.kboke-sidebar .widget-links .kboke-links-widget {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    padding: 18px var(--page-card-x, 22px);
}
.kboke-links-widget a {
    display: block;
    font-size: 13px;
    color: var(--text);
    text-decoration: none;
    background: var(--gray-100);
    border: 1px solid var(--border-light);
    border-radius: 8px;
    padding: 7px 10px;
    text-align: center;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    transition: color .2s ease, border-color .2s ease, background .2s ease, transform .2s ease;
}
.kboke-links-widget a:hover {
    color: var(--primary);
    border-color: var(--primary);
    background: var(--primary-light);
    transform: translateY(-1px);
}
@media (max-width: 479px) {
    .kboke-links-widget { grid-template-columns: 1fr; }
}

/* ============ v2.3.248 文章视频：居中大播放键 ============ */
.single-body .kboke-video-shell { position: relative; }
.kboke-video-play-btn {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 78px;
    height: 78px;
    border-radius: 50%;
    border: none;
    background: rgba(15, 23, 42, .48);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 5;
    box-shadow: 0 6px 24px rgba(0, 0, 0, .3);
    transition: background .2s ease, transform .2s ease, opacity .3s ease, visibility .3s ease;
}
.kboke-video-play-btn:hover { background: rgba(37, 99, 235, .82); transform: translate(-50%, -50%) scale(1.07); }
.kboke-video-play-btn svg { margin-left: 4px; }
/* 播放中隐藏、暂停/结束显示（可再次点击继续） */
.kboke-video-shell.is-playing .kboke-video-play-btn {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
@media (max-width: 768px) {
    .kboke-video-play-btn { width: 60px; height: 60px; }
    .kboke-video-play-btn svg { width: 24px; height: 24px; }
}

/* ============ v2.3.249 图集全屏查看（点击放大） ============ */
.kboke-gallery-main img { cursor: zoom-in; }
.kboke-gallery-lightbox {
    position: fixed;
    inset: 0;
    z-index: 99999;
    background: rgba(2, 6, 23, .92);
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.kboke-gallery-lightbox.is-open { display: flex; }
.kboke-gallery-lb-img {
    max-width: 92vw;
    max-height: 86vh;
    object-fit: contain;
    border-radius: 8px;
    box-shadow: 0 12px 48px rgba(0, 0, 0, .55);
}
.kboke-gallery-lb-close {
    position: absolute;
    top: 18px;
    right: 22px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: none;
    background: rgba(255, 255, 255, .12);
    color: #fff;
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
    z-index: 2;
    transition: background .2s ease;
}
.kboke-gallery-lb-close:hover { background: rgba(255, 255, 255, .26); }
.kboke-gallery-lb-prev,
.kboke-gallery-lb-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 52px;
    height: 52px;
    border-radius: 50%;
    border: none;
    background: rgba(255, 255, 255, .12);
    color: #fff;
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
    z-index: 2;
    transition: background .2s ease;
}
.kboke-gallery-lb-prev { left: 22px; }
.kboke-gallery-lb-next { right: 22px; }
.kboke-gallery-lb-prev:hover,
.kboke-gallery-lb-next:hover { background: rgba(255, 255, 255, .26); }
.kboke-gallery-lb-index {
    position: absolute;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    color: #fff;
    font-size: 14px;
    background: rgba(0, 0, 0, .5);
    padding: 4px 16px;
    border-radius: 999px;
}
@media (max-width: 768px) {
    .kboke-gallery-lb-prev { left: 10px; }
    .kboke-gallery-lb-next { right: 10px; }
    .kboke-gallery-lb-close { top: 12px; right: 14px; }
    .kboke-gallery-lightbox { padding: 12px; }
}

/* ==================== v2.3.256 新版 404 页面 ==================== */
.kboke-404 {
    text-align: center;
    padding: 64px var(--page-card-x, 22px) 72px;
    overflow: hidden;
    position: relative;
}
/* 顶部柔光装饰 */
.kboke-404::before {
    content: '';
    position: absolute;
    top: -90px;
    left: 50%;
    transform: translateX(-50%);
    width: 420px;
    height: 220px;
    background: radial-gradient(ellipse at center, color-mix(in srgb, var(--primary) 12%, transparent), transparent 70%);
    pointer-events: none;
}

.kboke-404-art {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    position: relative;
}
.kboke-404-num {
    font-size: 108px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -6px;
    /* 主题色渐变文字，旧浏览器回退主色 */
    color: var(--primary);
    background: linear-gradient(135deg, var(--primary) 10%, #7c3aed 55%, #ec4899 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    user-select: none;
}
.kboke-404-icon {
    width: 92px;
    height: 92px;
    color: var(--primary);
    filter: drop-shadow(0 4px 10px color-mix(in srgb, var(--primary) 30%, transparent));
    animation: kboke404Float 3.2s ease-in-out infinite;
}
.kboke-404-icon svg { width: 100%; height: 100%; display: block; }
@keyframes kboke404Float {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    50% { transform: translateY(-8px) rotate(6deg); }
}

.kboke-404-title {
    font-size: 30px;
    font-weight: 700;
    color: var(--text, #1f2937);
    margin: 20px 0 10px;
    position: relative;
}
.kboke-404-desc {
    font-size: 15px;
    color: var(--gray, #6b7280);
    line-height: 1.9;
    margin: 0 0 30px;
    position: relative;
}

/* 快捷按钮 */
.kboke-404-actions {
    display: flex;
    gap: 14px;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 34px;
    position: relative;
}
.kboke-404-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 11px 26px;
    font-size: 15px;
    font-weight: 600;
    border-radius: 999px;
    background: var(--primary);
    color: #fff;
    text-decoration: none;
    transition: transform .15s ease, box-shadow .15s ease, background .2s ease;
    box-shadow: 0 4px 14px color-mix(in srgb, var(--primary) 28%, transparent);
}
.kboke-404-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px color-mix(in srgb, var(--primary) 36%, transparent);
    color: #fff;
}
.kboke-404-btn-ghost {
    background: transparent;
    color: var(--primary);
    border: 1.5px solid color-mix(in srgb, var(--primary) 45%, transparent);
    box-shadow: none;
}
.kboke-404-btn-ghost:hover {
    background: color-mix(in srgb, var(--primary) 8%, transparent);
    color: var(--primary);
    box-shadow: none;
}

/* 站内搜索 */
.kboke-404-search {
    max-width: 460px;
    margin: 0 auto 36px;
    position: relative;
}
.kboke-404-search .search-wrap { margin: 0; }

@media (max-width: 600px) {
    .kboke-404-num { font-size: 76px; }
    .kboke-404-icon { width: 64px; height: 64px; }
    .kboke-404-title { font-size: 24px; }
    .kboke-404 { padding: 48px 18px 56px; }
}

/* ==================== v2.3.261 链接页 / 链接导航 ==================== */
.kboke-links-page { text-align: left; }
.kboke-links-page-title { font-size: 26px; font-weight: 700; color: var(--text, #1f2937); margin: 0 0 8px; }
.kboke-links-page-desc { font-size: 14px; color: var(--gray, #6b7280); margin: 0 0 18px; }
.kboke-links-group-title { font-size: 18px; font-weight: 700; color: var(--text, #1f2937); margin: 24px 0 10px; }
.kboke-links-page-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 12px;
    margin: 0 0 18px;
}
.kboke-links-page-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 14px 16px;
    background: var(--card-bg, #fff);
    border: 1px solid var(--border, #e5e7eb);
    border-radius: 10px;
    text-decoration: none;
    transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.kboke-links-page-item:hover {
    border-color: var(--primary);
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, .06);
}
.kboke-links-page-item-name {
    font-size: 14px;
    font-weight: 600;
    color: var(--text, #1f2937);
    transition: color .15s ease;
}
.kboke-links-page-item:hover .kboke-links-page-item-name { color: var(--primary); }
.kboke-links-page-item-desc {
    font-size: 12px;
    color: var(--gray, #6b7280);
    line-height: 1.5;
}
.kboke-links-page-empty { color: var(--gray, #6b7280); }

/* ==================== v2.3.263 网址导航页（导航站样式） ==================== */
.kboke-nav-page { margin-top: 6px; }
.kboke-nav-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 6px 0 18px;
}
.kboke-nav-tab {
    display: inline-block;
    padding: 6px 16px;
    font-size: 13px;
    color: var(--text, #1f2937);
    background: var(--card-bg, #fff);
    border: 1px solid var(--border, #e5e7eb);
    border-radius: 999px;
    text-decoration: none;
    transition: color .15s ease, border-color .15s ease, background .15s ease;
}
.kboke-nav-tab:hover {
    color: var(--primary);
    border-color: var(--primary);
}
.kboke-nav-group-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--text, #1f2937);
    margin: 26px 0 12px;
    padding-left: 10px;
    border-left: 4px solid var(--primary);
    line-height: 1.3;
}
.kboke-nav-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: 12px;
}
.kboke-nav-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 14px;
    background: var(--card-bg, #fff);
    border: 1px solid var(--border, #e5e7eb);
    border-radius: 12px;
    text-decoration: none;
    transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.kboke-nav-item:hover {
    border-color: var(--primary);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, .07);
}
.kboke-nav-icon {
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    font-weight: 700;
    color: #fff;
    background: linear-gradient(135deg, var(--primary), #7c3aed);
    border-radius: 12px;
}
.kboke-nav-body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.kboke-nav-name {
    font-size: 14px;
    font-weight: 600;
    color: var(--text, #1f2937);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.kboke-nav-item:hover .kboke-nav-name { color: var(--primary); }
.kboke-nav-desc {
    font-size: 12px;
    color: var(--gray, #6b7280);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
@media (max-width: 600px) {
    .kboke-nav-grid { grid-template-columns: 1fr; }
}

/* ==================== v2.3.264 网址导航页：左侧分类栏 + 右侧内容 ==================== */
.kboke-nav-layout {
    display: flex;
    gap: 22px;
    align-items: flex-start;
    margin: 8px 0 30px;
}
.kboke-nav-side {
    flex: 0 0 190px;
    position: sticky;
    top: 20px;
    background: var(--card-bg, #fff);
    border: 1px solid var(--border, #e5e7eb);
    border-radius: 12px;
    padding: 14px 10px;
}
.kboke-nav-side-title {
    font-size: 14px;
    font-weight: 700;
    color: var(--text, #1f2937);
    margin: 0 8px 10px;
}
.kboke-nav-side-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 12px;
    margin: 2px 0;
    font-size: 13px;
    color: var(--text, #1f2937);
    border-radius: 8px;
    text-decoration: none;
    transition: background .15s ease, color .15s ease;
}
.kboke-nav-side-item:hover { background: color-mix(in srgb, var(--primary) 8%, transparent); color: var(--primary); }
.kboke-nav-side-item.is-active { background: var(--primary); color: #fff; font-weight: 600; }
.kboke-nav-side-count {
    font-size: 11px;
    padding: 1px 8px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--primary) 10%, transparent);
    color: var(--primary);
}
.kboke-nav-side-item.is-active .kboke-nav-side-count { background: rgba(255, 255, 255, .22); color: #fff; }
.kboke-nav-content { flex: 1; min-width: 0; }
.kboke-nav-cat-title { font-size: 24px; font-weight: 700; color: var(--text, #1f2937); margin: 0 0 6px; }
.kboke-nav-cat-desc { font-size: 13px; color: var(--gray, #6b7280); margin: 0 0 16px; }
.kboke-nav-empty { color: var(--gray, #6b7280); }
@media (max-width: 860px) {
    .kboke-nav-layout { flex-direction: column; }
    .kboke-nav-side { flex: none; width: 100%; position: static; }
    .kboke-nav-side-item { display: inline-flex; margin: 2px; padding: 6px 12px; border: 1px solid var(--border, #e5e7eb); border-radius: 999px; }
}

/* v2.3.305：站点 Logo 图片（header 内） */
.logo.logo-image {
    display: inline-flex;
    align-items: center;
    line-height: 1;
}
.logo.logo-image img {
    display: block;
    max-height: 40px;
    width: auto;
    height: auto;
    object-fit: contain;
}
@media (max-width: 782px) {
    .logo.logo-image img { max-height: 32px; }
}

/* v2.3.320：标签页（标签云模板）网格布局 / 字号 / 分页 */
.tag-cloud-wrap { display: grid; grid-template-columns: repeat(var(--kboke-tag-cols, 5), 1fr); gap: 12px 10px; align-items: stretch; }
.tag-cloud-wrap.tag-size-small .tag-cloud-item { font-size: 13px; }
.tag-cloud-wrap.tag-size-medium .tag-cloud-item { font-size: 15px; }
.tag-cloud-wrap.tag-size-large .tag-cloud-item { font-size: 17px; }
.tag-cloud-wrap .tag-cloud-item { display: flex; align-items: center; justify-content: center; gap: 6px; min-width: 0; padding: 9px 12px; background: #f8fafc; color: #334155; border: 1px solid #e5e7eb; border-radius: 10px; text-align: center; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tag-cloud-wrap .tag-cloud-item:hover { transform: translateY(-2px); box-shadow: 0 5px 14px rgba(0,0,0,.10); border-color: #cbd5e1; background: #f1f5f9; }
.tag-cloud-wrap .tag-cloud-item .tag-name { overflow: hidden; text-overflow: ellipsis; }
.tag-cloud-wrap .tag-count { flex: 0 0 auto; margin-left: 2px; font-size: 11px; padding: 1px 6px; background: rgba(0,0,0,.08); border-radius: 999px; }
/* 标签云分页 */
.tag-cloud-pagination { margin-top: 22px; text-align: center; }
.tag-cloud-pagination .page-numbers { display: inline-block; min-width: 36px; padding: 6px 12px; margin: 3px; background: #f8fafc; border: 1px solid #e5e7eb; border-radius: 8px; color: #334155; text-decoration: none; font-size: 13px; transition: all .2s ease; }
.tag-cloud-pagination .page-numbers:hover { background: #fff; border-color: var(--primary, #2563eb); color: var(--primary, #2563eb); }
.tag-cloud-pagination .page-numbers.current { background: var(--primary, #2563eb); border-color: var(--primary, #2563eb); color: #fff; font-weight: 600; }
.tag-cloud-pagination .page-numbers.dots { border: none; background: none; min-width: auto; padding: 6px 4px; }
@media (max-width: 782px) {
    .tag-cloud-wrap { grid-template-columns: repeat(2, 1fr); }
}

/* ==================== v2.3.326 首页焦点图（多图轮播 + 超链接，列表栏内部顶部） ==================== */
.kboke-focus { position: relative; margin-bottom: 20px; border-radius: 12px; overflow: hidden; background: var(--gray-100); }
.kboke-focus-track { position: relative; }
.kboke-focus-slide { display: none; position: relative; }
.kboke-focus-slide.is-active { display: block; }
.kboke-focus-slide img { display: block; width: 100%; height: 200px; object-fit: cover; }
.kboke-focus-slide a { display: block; }
/* v2.3.329：焦点图文字标题（DUX 风格左下角覆盖层） */
.kboke-focus-title {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 28px 22px 14px;
    font-size: 16px;
    font-weight: 500;
    color: #fff;
    line-height: 1.5;
    background: linear-gradient(to top, rgba(0,0,0,.55), rgba(0,0,0,0));
    pointer-events: none;
    text-shadow: 0 1px 3px rgba(0,0,0,.3);
}
@media (max-width: 782px) {
    .kboke-focus-title { font-size: 14px; padding: 20px 14px 10px; }
}
.kboke-focus-dots { position: absolute; left: 0; right: 0; bottom: 12px; display: flex; justify-content: center; gap: 8px; z-index: 2; }
.kboke-focus-dot { width: 10px; height: 10px; border-radius: 50%; border: none; padding: 0; background: rgba(255,255,255,.55); cursor: pointer; transition: all .2s; }
.kboke-focus-dot.is-active { background: #fff; transform: scale(1.2); }
.kboke-focus-dot:hover { background: #fff; }
@media (max-width: 782px) {
    .kboke-focus-slide img { height: 140px; }
    .kboke-focus-dots { bottom: 8px; }
}

/* ==================== v2.3.561 广告位样式已移除 ====================
   原 .kboke-ad / .kboke-ad a / .kboke-ad img / .kboke-ad-title / .kboke-ad-inlist
   已随「广告」设置页（4 个图片广告位）整体删除。
   注意：侧边栏「Kboke 广告」小工具仍在用 .kboke-ad-widget —— 见上方「广告小工具」段，未受影响。 */


/* ==================== v2.3.487 正文配图（无图注） ====================
   配图由「自定义发布 → 自动配图」从图池随机取图后插入 <figure>。
   图注（figcaption）自 v2.3.487 起不再输出；此处兜底隐藏历史文章里
   可能残留的配图图注，避免升级后旧文章仍显示与图片无关的描述文字。 */
.kboke-ai-figure > figcaption.kboke-ai-figcaption { display: none; }
.kboke-ai-figure { margin: 1.2em 0; }

/* v2.3.488：配图限宽居中——
   ① 桌面端最大宽度走 CSS 变量 --kboke-ai-img-max（主题设置「AI 配图最大宽度」，默认 560px）；
   ② 图片居中显示、两侧自然留白，不再撑满正文宽度（v2.3.487 的 760×570 观感过大）；
   ③ 高度自适应，不裁剪、不拉伸，保持图池素材原始比例。
      注：max-width 只约束"上限"，图片本身小于该值时按原始尺寸显示，不会被强行放大。 */
.kboke-ai-figure img {
    display: block;
    width: auto;                                  /* 不强制撑满正文宽度 */
    max-width: min(100%, var(--kboke-ai-img-max, 560px));
    height: auto;
    margin: 0 auto;                               /* 居中显示 */
}

/* v2.3.488：移动端（<768px）取消限宽，始终全宽自适应。
   小屏上 560px 会被视口压缩到很小，反而浪费空间，故此处放开为 100%。 */
@media (max-width: 767px) {
    .kboke-ai-figure img { max-width: 100%; }
}

/* ==================== v2.3.512：表单提交加载态 ==================== */
/* 会员中心各表单提交时按钮进入「处理中…」状态（由 member.js 统一加 .is-loading）。
   目的：给用户明确反馈，避免「不知道点没点中」导致反复点击、重复提交。 */
button.is-loading,
input.is-loading,
.btn.is-loading {
    opacity: 0.75;
    cursor: progress !important;
    /* 左侧留出转圈的位置，文字不会被挤动 */
    padding-left: 30px !important;
    position: relative;
}

button.is-loading::before,
.btn.is-loading::before {
    content: "";
    position: absolute;
    left: 10px;
    top: 50%;
    width: 12px;
    height: 12px;
    margin-top: -6px;
    border: 2px solid currentColor;
    border-top-color: transparent;
    border-radius: 50%;
    animation: kboke-btn-spin 0.7s linear infinite;
}

@keyframes kboke-btn-spin {
    to { transform: rotate(360deg); }
}

/* 尊重「减少动效」的系统偏好：不转圈，仅保留半透明 + 禁用光标 */
@media (prefers-reduced-motion: reduce) {
    button.is-loading::before,
    .btn.is-loading::before {
        animation: none;
        border-top-color: currentColor;
    }
}

/* 评论顶/踩按钮投票中状态 */
.kboke-comment-like.is-voting,
.kboke-comment-dislike.is-voting {
    opacity: 0.6;
    cursor: progress !important;
}

/* ==================== v2.3.512：搜索无结果页的引导出口 ==================== */
/* 原先只显示「未找到相关文章」+ 一句「换个关键词」，访客无处可去只能关页。
   现在给出热门标签 / 最新文章 / 返回首页三组真实入口。 */
.kboke-no-results {
    text-align: left;
}

.kboke-no-results > h2 {
    margin-top: 0;
}

.kboke-no-results-block {
    margin: 22px 0;
}

.kboke-no-results-block > h3 {
    font-size: 15px;
    margin: 0 0 10px;
    color: var(--text);
}

.kboke-no-results-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.kboke-no-results-tags a {
    display: inline-block;
    padding: 5px 12px;
    border-radius: 999px;
    background: var(--primary-light);
    color: var(--primary);
    font-size: 13px;
    text-decoration: none;
    transition: background .2s, color .2s;
}

.kboke-no-results-tags a:hover {
    background: var(--primary);
    color: #fff;
}

.kboke-no-results-list {
    margin: 0;
    padding-left: 20px;
    line-height: 2;
    color: var(--muted);
}

.kboke-no-results-list a {
    color: var(--text);
    text-decoration: none;
}

.kboke-no-results-list a:hover {
    color: var(--primary);
}

.kboke-no-results-home {
    margin: 24px 0 4px;
}

.kboke-no-results-home .btn {
    display: inline-block;
    width: auto;
    padding: 9px 20px;
}

/* ==========================================================================
   v2.3.525：移动端触控目标优化（无障碍 / 易用性）
   --------------------------------------------------------------------------
   站点诊断发现：375px 视口下有 47 个可点元素的命中区域小于 32×32px，
   其中绝大多数是标签云链接（.tag-link-*，实测 78×30px）与文章卡片上的
   分类标签（.post-card-cat）—— 高度只有 30px 左右，手指点击容易误触。

   WCAG 2.5.8「Target Size (Minimum)」建议可点目标至少 24×24px；
   主流移动端体验标准（Apple HIG / Material）推荐 44×44px。
   这里在触屏设备上给标签类链接补足最小高度与内边距，
   使命中区域达到约 36px 高（视觉变化很小，但点击准确率明显提升）。
   仅在 coarse pointer（触屏）下生效，桌面端观感完全不受影响。
   ========================================================================== */
@media (hover: none) and (pointer: coarse) {
    /* 标签云 / 标签链接：命中区高度补到 36px */
    .widget_tag_cloud .tagcloud a,
    .wp-block-tag-cloud a,
    .tag-cloud-link,
    a[class*="tag-link-"] {
        min-height: 36px;
        padding-top: 8px;
        padding-bottom: 8px;
        box-sizing: border-box;
    }
    /* 文章卡片上的分类 / 标签小徽标 */
    .post-card-cat,
    .post-card-tag,
    .kboke-entry-tags a,
    .entry-tags a {
        min-height: 32px;
        display: inline-flex;
        align-items: center;
        box-sizing: border-box;
    }
    /* 页脚站点地图这类密集链接：给足行高，减少误触 */
    .kboke-footer-sitemap a {
        min-height: 32px;
        display: inline-flex;
        align-items: center;
        box-sizing: border-box;
    }
}

/* ==========================================================================
   v2.3.553：回到顶部按钮
   --------------------------------------------------------------------------
   位置与时机按既定方案：全端右下角固定，向下滚动约 600px 后淡入——
   600px 大约是「已经读完一屏」的位置，不会一进页面就冒出来挡内容；
   右下角是移动端拇指最容易够到的位置。
   按钮带 hidden 属性初始态，无 JS 时完全不出现（见 footer.php）。
   ========================================================================== */
.kboke-to-top {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 900;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--primary, #2563eb);
    color: #fff;
    cursor: pointer;
    box-shadow: 0 6px 18px color-mix(in srgb, var(--primary, #2563eb) 32%, transparent);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity .25s ease, transform .25s ease, visibility .25s ease;
}
.kboke-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.kboke-to-top:hover {
    background: var(--primary-hover, var(--primary, #2563eb));
    transform: translateY(-2px);
}
.kboke-to-top:active {
    transform: translateY(0);
}
.kboke-to-top:focus-visible {
    outline: 2px solid var(--primary, #2563eb);
    outline-offset: 3px;
}
/* 无 JS 兜底：hidden 优先于上面的 display:flex */
.kboke-to-top[hidden] {
    display: none;
}

@media (max-width: 768px) {
    .kboke-to-top {
        right: 14px;
        bottom: 14px;
        width: 40px;
        height: 40px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .kboke-to-top {
        transition: none;
        transform: none;
    }
    .kboke-to-top.is-visible {
        transform: none;
    }
}

/* ==========================================================================
   v2.3.576：手机端侧栏固定在正文之后（＝「右侧」）
   --------------------------------------------------------------------------
   桌面端的左右是**用 DOM 顺序**实现的：模板在 layout=left 时先 get_sidebar()、
   layout=right 时后置（如 single.php 第 21 / 201 行）。手机端 .kboke-layout 变成
   单列堆叠后，DOM 在前的侧栏就跑到正文**上方**去了 —— 这正是站长看到的
   「手机端侧栏不都在右侧」。这里用 order 把 main 提到侧栏之前，与 DOM 顺序无关，
   一次覆盖全部模板（首页/单页/分类/标签/作者/搜索/全宽页）。
   注：v2.3.553 的「相关推荐」折叠入口条已在 v2.3.576 整体移除（标记 / 样式 / 脚本三处同删），
   站长要求手机端不要折叠、直接显示小工具。
   ========================================================================== */
@media (max-width: 768px) {
    .kboke-layout .kboke-main { order: 0; }
    /* 显式覆盖 body 上的 .kboke-layout-left（functions.php 的 kboke_body_classes 会输出它，
       其 order:-1 规则在 main.css 上方，此处靠「更晚 + 同特异性」胜出，写两个选择器是保险） */
    .kboke-layout .kboke-sidebar,
    .kboke-layout-left .kboke-sidebar { order: 1; }
}

/* ==================================================================
   v2.3.554：支柱页聚合区块（[kboke_pillar] 短代码输出）
   作用域全部收敛在 .kboke-pillar 内，不影响站点其它区域。
   ================================================================== */
.kboke-pillar {
    margin: 0 0 32px;
}
.kboke-pillar-summary {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 14px 18px;
    margin-bottom: 22px;
    background: var(--kboke-gray-50, #f7f8fa);
    border-left: 3px solid var(--kboke-primary, #1a73e8);
    border-radius: 4px;
}
.kboke-pillar-summary-num {
    font-size: 26px;
    font-weight: 700;
    line-height: 1;
    color: var(--kboke-primary, #1a73e8);
}
.kboke-pillar-summary-text {
    font-size: 14px;
    color: var(--kboke-text-secondary, #666);
}
.kboke-pillar-toc {
    padding: 16px 18px;
    margin-bottom: 28px;
    border: 1px solid var(--kboke-border, #eaecef);
    border-radius: 6px;
}
.kboke-pillar-toc-title {
    display: block;
    margin-bottom: 10px;
    font-size: 14px;
    font-weight: 700;
    color: var(--kboke-text, #1f2329);
}
.kboke-pillar-toc ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 10px;
}
.kboke-pillar-toc li {
    margin: 0;
}
.kboke-pillar-toc a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 12px;
    font-size: 13px;
    border-radius: 999px;
    background: var(--kboke-gray-50, #f7f8fa);
    color: var(--kboke-text, #1f2329);
    text-decoration: none;
    transition: background .15s, color .15s;
}
.kboke-pillar-toc a:hover {
    background: var(--kboke-primary, #1a73e8);
    color: #fff;
}
.kboke-pillar-toc-num {
    font-size: 12px;
    opacity: .65;
}
.kboke-pillar-heading {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin: 30px 0 12px;
    font-size: 19px;
    scroll-margin-top: 90px;
}
.kboke-pillar-heading a {
    color: inherit;
    text-decoration: none;
}
.kboke-pillar-heading a:hover {
    color: var(--kboke-primary, #1a73e8);
}
.kboke-pillar-heading-count {
    font-size: 12px;
    font-weight: 400;
    color: var(--kboke-text-secondary, #999);
}
.kboke-pillar-list {
    margin: 0;
    padding: 0;
    list-style: none;
}
.kboke-pillar-list li {
    position: relative;
    margin: 0 0 9px;
    padding-left: 16px;
    line-height: 1.7;
}
.kboke-pillar-list li::before {
    content: "";
    position: absolute;
    left: 2px;
    top: .72em;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--kboke-primary, #1a73e8);
    opacity: .45;
}
.kboke-pillar-list a {
    color: var(--kboke-text, #1f2329);
    text-decoration: none;
    transition: color .15s;
}
.kboke-pillar-list a:hover {
    color: var(--kboke-primary, #1a73e8);
    text-decoration: underline;
}
.kboke-pillar-block-more {
    margin: -2px 0 18px;
    padding-left: 16px;
    font-size: 13px;
}
.kboke-pillar-block-more a {
    color: var(--kboke-text-secondary, #666);
    text-decoration: none;
}
.kboke-pillar-block-more a:hover {
    color: var(--kboke-primary, #1a73e8);
    text-decoration: underline;
}
.kboke-pillar-rest {
    margin: 24px 0 0;
    font-size: 13px;
    color: var(--kboke-text-secondary, #666);
}
.kboke-pillar-more {
    margin: 28px 0 0;
    padding-top: 16px;
    border-top: 1px dashed var(--kboke-border, #eaecef);
    font-size: 14px;
}
.kboke-pillar-missing,
.kboke-pillar-empty {
    padding: 12px 16px;
    margin: 0 0 20px;
    font-size: 13px;
    color: var(--kboke-text-secondary, #666);
    background: var(--kboke-gray-50, #f7f8fa);
    border-radius: 4px;
}
@media (max-width: 640px) {
    .kboke-pillar-summary {
        flex-direction: column;
        gap: 4px;
    }
    .kboke-pillar-toc ul {
        gap: 6px 8px;
    }
}

/* ==================================================================
   v2.3.558：支柱页「一键生成」配套样式
   两块：
     ① .kboke-pillar-intro —— 页面顶部的导语与「这一页怎么用」
     ② .kboke-pillar-entry —— 标签归档页顶部指向支柱页的入口
   沿用的是同一套 CSS 变量，与上面的 .kboke-pillar 视觉语言一致。
   ================================================================== */
.kboke-pillar-intro {
    margin: 0 0 26px;
}
.kboke-pillar-intro-lead {
    margin: 0 0 14px;
    font-size: 15px;
    line-height: 1.9;
    color: var(--kboke-text, #1f2329);
}
.kboke-pillar-intro-lead strong {
    color: var(--kboke-primary, #1a73e8);
}
.kboke-pillar-usage {
    margin: 0;
    padding: 14px 18px 14px 20px;
    list-style: none;
    background: var(--kboke-gray-50, #f7f8fa);
    border-radius: 6px;
    font-size: 14px;
    line-height: 1.9;
    color: var(--kboke-text-secondary, #666);
}
.kboke-pillar-usage li {
    position: relative;
    margin: 0;
    padding-left: 14px;
}
.kboke-pillar-usage li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .85em;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--kboke-primary, #1a73e8);
    opacity: .45;
}
.kboke-pillar-usage strong {
    color: var(--kboke-text, #1f2329);
}

.kboke-pillar-entry {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    padding: 12px 16px;
    margin: 0 0 20px;
    background: var(--kboke-gray-50, #f7f8fa);
    border-left: 3px solid var(--kboke-primary, #1a73e8);
    border-radius: 4px;
    font-size: 14px;
    line-height: 1.7;
}
.kboke-pillar-entry-label {
    flex: none;
    padding: 2px 8px;
    font-size: 12px;
    color: #fff;
    background: var(--kboke-primary, #1a73e8);
    border-radius: 3px;
}
.kboke-pillar-entry a {
    color: var(--kboke-text, #1f2329);
    text-decoration: none;
}
.kboke-pillar-entry a:hover {
    color: var(--kboke-primary, #1a73e8);
    text-decoration: underline;
}

@media (max-width: 640px) {
    .kboke-pillar-entry {
        align-items: flex-start;
        gap: 6px;
    }
    .kboke-pillar-intro-lead {
        font-size: 14px;
    }
}
