/* ============================================
   Yohaku Theme for CNBlogs — Layout Refined
   Style: Japanese Minimalism / Wabi-Sabi
   ============================================ */

:root {
  --bg: #fefdfa;
  --bg-warm: #f7f5f0;
  --text: #1c1c1e;
  --text-secondary: #6b6b6e;
  --text-tertiary: #9e9ea0;
  --border: #e8e6e1;
  --border-light: #f0ede8;
  --accent: #4a6fa5;
  --accent-soft: rgba(74, 111, 165, 0.08);
  
  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", sans-serif;
  --font-mono: "SF Mono", Monaco, "Cascadia Code", Consolas, monospace;
  
  --ease: cubic-bezier(0.34, 1.56, 0.64, 1);
  --transition-fast: 150ms ease-out;
  --transition-smooth: 400ms var(--ease);
}

/* ---- 全局 ---- */
* { box-sizing: border-box; }

body {
  background-color: var(--bg) !important;
  color: var(--text) !important;
  font-family: var(--font) !important;
  font-size: 15px !important;
  line-height: 1.7 !important;
  margin: 0 !important;
  -webkit-font-smoothing: antialiased;
}

::selection {
  background-color: var(--accent);
  color: var(--bg);
}

/* ---- 顶部导航（毛玻璃 + 居中） ---- */
#header {
  background: rgba(254, 253, 250, 0.85) !important;
  backdrop-filter: blur(20px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
  border-bottom: 1px solid var(--border-light) !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 100 !important;
  padding: 0 !important;
}

/* 标题区域作为 Hero */
#blogTitle {
  padding: 48px 24px 32px !important;
  text-align: center !important;
  border-bottom: 1px solid var(--border) !important;
}

#blogTitle h1 {
  margin: 0 auto 12px !important;
  padding: 0 !important;
}

#blogTitle h1 a {
  color: var(--text) !important;
  font-family: var(--font) !important;
  font-size: 36px !important;
  font-weight: 600 !important;
  letter-spacing: -0.03em !important;
  text-decoration: none !important;
  transition: opacity var(--transition-fast);
}

#blogTitle h1 a:hover {
  opacity: 0.6;
}

#blogTitle h2 {
  color: var(--text-tertiary) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  letter-spacing: 0.1em !important;
  margin: 0 !important;
}

/* 导航栏 */
#navigator {
  background: transparent !important;
  border: none !important;
  padding: 16px 24px !important;
}

#navList {
  display: flex !important;
  gap: 40px !important;
  justify-content: center !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

#navList a {
  color: var(--text-secondary) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 0.04em !important;
  padding: 4px 0 !important;
  position: relative !important;
  text-decoration: none !important;
  transition: color var(--transition-fast);
}

#navList a::after {
  background: var(--accent);
  bottom: -2px;
  content: "";
  height: 2px;
  left: 50%;
  position: absolute;
  transform: translateX(-50%) scaleX(0);
  transition: transform var(--transition-fast);
  width: 100%;
}

#navList a:hover {
  color: var(--text) !important;
}

#navList a:hover::after {
  transform: translateX(-50%) scaleX(1);
}

/* ---- 主体布局（现代栅格） ---- */
#main {
  display: flex !important;
  gap: 64px !important;
  margin: 64px auto !important;
  max-width: 1100px !important;
  padding: 0 24px !important;
  position: relative;
  align-items: flex-start;
}

#mainContent {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

#sideBar {
  flex: 0 0 260px !important;
  position: sticky !important;
  top: 140px !important;
  align-self: flex-start !important;
}

/* ---- 侧边栏（精致模块） ---- */
#sideBarMain {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
}

#sideBar h3 {
  color: var(--text-tertiary) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.15em !important;
  margin: 0 0 20px !important;
  padding-bottom: 12px !important;
  border-bottom: 1px solid var(--border) !important;
  text-transform: uppercase !important;
}

#sideBar > div,
#sideBar > aside {
  margin-bottom: 48px !important;
}

#sideBar a {
  color: var(--text) !important;
  display: block !important;
  font-size: 14px !important;
  padding: 10px 0 !important;
  text-decoration: none !important;
  border-bottom: 1px solid var(--border-light) !important;
  transition: all var(--transition-fast);
  position: relative;
}

#sideBar a:last-child {
  border-bottom: none !important;
}

#sideBar a::before {
  background: var(--accent);
  content: "";
  height: 100%;
  left: -12px;
  opacity: 0;
  position: absolute;
  top: 0;
  transition: opacity var(--transition-fast), left var(--transition-fast);
  width: 3px;
}

#sideBar a:hover {
  color: var(--accent) !important;
  padding-left: 8px !important;
}

#sideBar a:hover::before {
  left: -4px;
  opacity: 1;
}

/* ---- 文章列表（重构版式） ---- */
.day {
  background: transparent !important;
  margin-bottom: 0 !important;
  padding: 40px 0 !important;
  position: relative !important;
  border-bottom: 1px solid var(--border-light) !important;
  transition: all var(--transition-smooth);
}

.day:first-of-type {
  padding-top: 0 !important;
}

/* 左侧引导线 */
.day::before {
  background: transparent;
  content: "";
  height: 100%;
  left: -20px;
  position: absolute;
  top: 0;
  transition: background var(--transition-fast);
  width: 4px;
}

.day:hover::before {
  background: var(--accent);
}

.day:hover {
  background: var(--accent-soft) !important;
  padding-left: 16px !important;
  padding-right: 16px !important;
  margin-left: -16px !important;
  margin-right: -16px !important;
  border-radius: 4px;
}

/* 日期标签 */
.dayTitle {
  color: var(--text-tertiary) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.1em !important;
  margin-bottom: 8px !important;
  text-transform: uppercase !important;
}

/* 标题 */
.postTitle {
  font-size: 22px !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.3 !important;
  margin: 0 0 12px !important;
}

.postTitle a {
  color: var(--text) !important;
  text-decoration: none !important;
  transition: color var(--transition-fast);
}

.postTitle a:hover {
  color: var(--accent) !important;
}

/* 摘要 */
.postCon {
  color: var(--text-secondary) !important;
  font-size: 14px !important;
  line-height: 1.8 !important;
  margin: 0 0 16px !important;
  max-width: 65ch;
}

/* 元信息栏 */
.postDesc {
  align-items: center !important;
  color: var(--text-tertiary) !important;
  display: flex !important;
  font-size: 12px !important;
  gap: 16px !important;
  margin-top: 16px !important;
}

.postDesc a {
  color: var(--accent) !important;
  font-size: 12px !important;
  text-decoration: none !important;
  transition: opacity var(--transition-fast);
}

.postDesc a:hover {
  opacity: 0.7;
}

/* 阅读更多 */
.c_b_p_desc_readmore {
  margin-left: auto !important;
  color: var(--accent) !important;
}

/* ---- 文章详情页（沉浸阅读） ---- */
.post {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  max-width: 680px;
  margin: 0 auto;
}

/* 文章头部仪式区 */
.post::before {
  background: var(--accent);
  content: "";
  display: block;
  height: 3px;
  margin: 0 auto 48px;
  width: 40px;
}

.postBody {
  color: var(--text) !important;
  font-size: 16px !important;
  line-height: 1.8 !important;
}

/* 文章标题 */
.postBody h1,
.postBody h2,
.postBody h3,
.postBody h4 {
  color: var(--text) !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.3 !important;
  margin: 56px 0 24px !important;
  text-align: left !important;
}

.postBody h1 { font-size: 32px; margin-top: 0; }
.postBody h2 { font-size: 26px; color: var(--text); border-bottom: 1px solid var(--border); padding-bottom: 12px; }
.postBody h3 { font-size: 20px; }
.postBody h4 { font-size: 18px; font-weight: 500; }

.postBody p {
  margin: 20px 0 !important;
  text-align: justify;
  word-break: break-word;
  hyphens: auto;
}

.postBody a {
  border-bottom: 1px solid var(--border) !important;
  color: var(--accent) !important;
  padding-bottom: 1px;
  text-decoration: none !important;
  transition: border-color var(--transition-fast), color var(--transition-fast);
}

.postBody a:hover {
  border-bottom-color: var(--accent) !important;
  color: var(--text) !important;
}

.postBody img {
  border-radius: 6px !important;
  display: block !important;
  margin: 40px auto !important;
  max-width: 100% !important;
  box-shadow: 0 4px 24px rgba(0,0,0,0.06) !important;
}

.postBody ul,
.postBody ol {
  margin: 24px 0 !important;
  padding-left: 28px !important;
}

.postBody li {
  margin: 10px 0 !important;
  color: var(--text) !important;
}

.postBody li::marker {
  color: var(--text-tertiary) !important;
}

.postBody blockquote {
  border-left: 3px solid var(--accent) !important;
  color: var(--text-secondary) !important;
  font-style: italic !important;
  margin: 32px 0 !important;
  padding: 8px 0 8px 28px !important;
  background: transparent !important;
}

.postBody blockquote p {
  margin: 0 !important;
  font-size: 15px;
}

.postBody hr {
  border: none !important;
  border-top: 1px solid var(--border) !important;
  margin: 48px auto !important;
  width: 60%;
}

/* ---- 代码块 ---- */
.postBody pre,
.cnblogs-markdown pre {
  background: var(--bg-warm) !important;
  border: 1px solid var(--border) !important;
  border-radius: 6px !important;
  font-family: var(--font-mono) !important;
  font-size: 13.5px !important;
  line-height: 1.7 !important;
  margin: 32px 0 !important;
  overflow-x: auto !important;
  padding: 24px !important;
  position: relative !important;
}

.postBody code,
.cnblogs-markdown code {
  background: var(--bg-warm) !important;
  border-radius: 3px !important;
  color: var(--text) !important;
  font-family: var(--font-mono) !important;
  font-size: 0.88em !important;
  padding: 2px 5px !important;
}

.syntaxhighlighter {
  background: var(--bg-warm) !important;
  border: 1px solid var(--border) !important;
  border-radius: 6px !important;
  font-family: var(--font-mono) !important;
  font-size: 13.5px !important;
  margin: 32px 0 !important;
  padding: 24px !important;
}

.syntaxhighlighter .keyword { color: var(--accent) !important; font-weight: 600 !important; }
.syntaxhighlighter .string { color: #5a7d5a !important; }
.syntaxhighlighter .number { color: #b8954e !important; }
.syntaxhighlighter .comments { color: var(--text-tertiary) !important; font-style: italic !important; }
.syntaxhighlighter .preprocessor { color: var(--text-secondary) !important; }
.syntaxhighlighter .function { color: var(--text) !important; font-weight: 600 !important; }

/* ---- 表格 ---- */
.postBody table {
  border-collapse: collapse !important;
  border: 1px solid var(--border) !important;
  font-size: 14px !important;
  margin: 32px 0 !important;
  width: 100% !important;
}

.postBody th {
  background: var(--bg-warm) !important;
  border-bottom: 2px solid var(--border) !important;
  color: var(--text) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  padding: 12px 16px !important;
  text-align: left !important;
  text-transform: uppercase !important;
}

.postBody td {
  border-bottom: 1px solid var(--border-light) !important;
  color: var(--text) !important;
  padding: 12px 16px !important;
}

.postBody tr:last-child td {
  border-bottom: 1px solid var(--border) !important;
}

/* ---- 评论区 ---- */
#blog-comments-placeholder {
  border-top: 1px solid var(--border) !important;
  margin-top: 80px !important;
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
  padding-top: 48px !important;
}

.comment_title {
  color: var(--text-tertiary) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.15em !important;
  margin-bottom: 32px !important;
  text-transform: uppercase !important;
}

/* ---- 分页（精致按钮组） ---- */
.topicListFooter {
  margin-top: 64px !important;
  padding-bottom: 24px;
}

.pager {
  display: flex !important;
  gap: 8px !important;
  justify-content: center !important;
  list-style: none !important;
  padding: 0 !important;
}

.pager a,
.pager span {
  background: var(--bg) !important;
  border: 1px solid var(--border) !important;
  border-radius: 6px !important;
  color: var(--text) !important;
  display: inline-flex !important;
  align-items: center;
  font-size: 13px !important;
  font-weight: 500 !important;
  height: 36px;
  justify-content: center;
  min-width: 36px !important;
  padding: 0 12px !important;
  text-decoration: none !important;
  transition: all var(--transition-fast);
}

.pager a:hover {
  background: var(--bg-warm) !important;
  border-color: var(--text) !important;
  color: var(--text) !important;
}

.pager .current {
  background: var(--text) !important;
  border-color: var(--text) !important;
  color: var(--bg) !important;
  font-weight: 600 !important;
}

/* ---- 页脚 ---- */
#footer {
  background: var(--bg-warm) !important;
  border-top: 1px solid var(--border) !important;
  color: var(--text-tertiary) !important;
  margin-top: 120px !important;
  padding: 48px 24px !important;
  text-align: center !important;
  font-size: 12px !important;
  letter-spacing: 0.05em !important;
}

#footer a {
  color: var(--text-secondary) !important;
  text-decoration: none !important;
  transition: color var(--transition-fast);
}

#footer a:hover {
  color: var(--accent) !important;
}

/* ---- 滚动条 ---- */
::-webkit-scrollbar {
  width: 8px !important;
}

::-webkit-scrollbar-track {
  background: var(--bg) !important;
}

::-webkit-scrollbar-thumb {
  background: var(--border) !important;
  border-radius: 4px !important;
  border: 2px solid var(--bg) !important;
}

::-webkit-scrollbar-thumb:hover {
  background: var(--text-tertiary) !important;
}

/* ---- 响应式 ---- */
@media screen and (max-width: 1024px) {
  #main {
    flex-direction: column !important;
    gap: 48px !important;
    margin-top: 40px !important;
  }
  
  #sideBar {
    position: relative !important;
    top: auto !important;
    width: 100% !important;
  }
  
  #sideBarMain {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 32px !important;
  }
  
  .post {
    max-width: 100%;
  }
  
  #blog-comments-placeholder {
    max-width: 100%;
  }
}

@media screen and (max-width: 768px) {
  #blogTitle {
    padding: 32px 20px 24px !important;
  }
  
  #blogTitle h1 a {
    font-size: 28px !important;
  }
  
  #main {
    padding: 0 20px !important;
    margin-top: 32px !important;
  }
  
  .day {
    padding: 32px 0 !important;
  }
  
  .postTitle {
    font-size: 20px !important;
  }
  
  .postBody h1 { font-size: 26px; }
  .postBody h2 { font-size: 22px; }
  .postBody h3 { font-size: 18px; }
  
  #navList {
    gap: 24px !important;
  }
  
  #sideBarMain {
    grid-template-columns: 1fr !important;
  }
  
  .postDesc {
    flex-wrap: wrap;
    gap: 8px !important;
  }
}