:root {
  --primary: #c92026; /* 保留醒目的红作为强调色 */
  --bg: #ffffff;      /* 纯白背景 */
  --bg-soft: #f3f4f6; /* 更中性的浅灰背景 */
  --text: #111827;    /* 更深的文字色，提升对比 */
  --text-soft: #4b5563; /* 次要文字灰 */
  --border: #111827;  /* 深色边框用于布鲁塔风格 */
  --card: #ffffff;    /* 卡片保持白底，靠边框区分 */
  --primary-soft: rgba(225, 29, 72, 0.12); /* 主题色柔化背景 */
}

* { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Microsoft YaHei", sans-serif;
  color: var(--text);
  background: var(--bg);
}

/* 通用辅助与隐藏类 */
.hidden { display: none !important; }
.visually-hidden { position: absolute !important; clip: rect(1px, 1px, 1px, 1px); padding: 0 !important; border: 0 !important; height: 1px !important; width: 1px !important; overflow: hidden; }

.container { width: 1400px; max-width: 95%; margin: 0 auto; }
/* Wider container for pages that need more width */

.site-header {
  position: sticky; top: 0; z-index: 1000;
  background: #fff;
  border-bottom: 2px solid var(--border);
}
.header-inner { display: flex; align-items: center; gap: 24px; padding: 12px 0; }
.logo { font-weight: 800; font-size: 20px; color: var(--text); text-decoration: none; }
.logo span { color: var(--primary); }

.main-nav { display: flex; gap: 16px; }
.main-nav a { color: var(--text-soft); text-decoration: none; padding: 10px 12px; border-bottom: 2px solid transparent; }
.main-nav a.active, .main-nav a:hover { color: var(--text); border-bottom-color: var(--border); }

.header-actions { margin-left: auto; display: flex; align-items: center; gap: 12px; }
.search-box { display: flex; align-items: center; gap: 8px; padding: 6px 8px; background: #fff; border: 2px solid var(--border); border-radius: 0; }
.search-box input { width: 220px; border: none; outline: none; background: transparent; font-size: 14px; }
.search-box button { border: 2px solid var(--border); background: #fff; color: var(--text); padding: 8px 12px; border-radius: 0; cursor: pointer; }

button { border: 2px solid var(--border); background: #fff; color: var(--text); padding: 10px 14px; border-radius: 0; cursor: pointer; font-weight: 600; }
button.accent { background: var(--text); color: #fff; border-color: var(--text); }
button:hover { opacity: 0.96; }

.hero { background: #fff; border-top: 2px solid var(--border); border-bottom: 2px solid var(--border); }
.hero-inner { padding: 36px 0; text-align: center; }
.hero h1 { font-size: 40px; margin: 0 0 10px; letter-spacing: 0.3px; }
.hero p { margin: 0 0 20px; color: var(--text-soft); }
.hero-search { display: inline-flex; gap: 8px; background: #fff; border: 2px solid var(--border); border-radius: 0; padding: 12px; }

.hero-search input { width: 520px; max-width: 70vw; border: none; outline: none; font-size: 16px; }
.hero-search button { border-radius: 999px; padding: 8px 14px; }

.trending-tags { margin-top: 14px; display: flex; gap: 8px; align-items: center; justify-content: center; flex-wrap: wrap; }
.trending-tags .label { color: var(--text-soft); font-size: 14px; }
.trending-tags .tag { text-decoration: none; color: var(--text); background: var(--bg-soft); border: 2px solid var(--border); border-radius: 0; padding: 6px 10px; }
.trending-tags .tag:hover { color: var(--primary); border-color: var(--primary); }

.layout { display: grid; grid-template-columns: 7fr 2fr; gap: 40px; padding: 40px 0; }
.layout > section, .layout > aside { min-width: 0; }
.layout.home-layout { align-items: start; grid-template-areas: 'main sidebar'; }
.layout.home-layout > section { grid-area: main; grid-column: 1; position: relative; z-index: 1; overflow-x: hidden; }
.layout.home-layout > aside { grid-area: sidebar; grid-column: 2; overflow-x: hidden; width: 100%; box-sizing: border-box; }
.layout.post-layout { grid-template-columns: 3fr 1fr; }
.layout.no-sidebar { grid-template-columns: 1fr; }
.section-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; padding-bottom: 8px; border-bottom: 2px solid var(--border); }
.tabs { display: flex; gap: 8px; }
.tab { background: #fff; border: 2px solid var(--border); border-radius: 0; padding: 8px 12px; cursor: pointer; }
.tab.active { background: var(--text); color: #fff; border-color: var(--text); }

.articles { display: grid; grid-template-columns: 1fr; gap: 16px; min-width: 0; overflow-x: hidden; }
.post-item, .post-item .content { min-width: 0; }
.post-item .tags a { display: inline-block; max-width: 100%; }
.load-more { display: flex; justify-content: center; margin: 16px 0; }
.post-item .title { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.layout.home-layout .articles { grid-template-columns: 1fr; gap: 0; }
.layout.home-layout .articles .post-item {
  display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 16px;
  padding: 12px 0; border-bottom: 2px solid var(--border);
  background: transparent;
}
.layout.home-layout .articles .post-item.no-thumb { grid-template-columns: minmax(0, 1fr); }
.layout.home-layout .articles .post-item:last-child { border-bottom: none; }
.layout.home-layout .post-item .thumb {
  height: 140px; border: 2px solid var(--border); background: var(--bg-soft);
  width: 100%; box-sizing: border-box; overflow: hidden;
}
.post-item .thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.layout.home-layout .post-item .content { padding: 0; }
.layout.home-layout .post-item .title { font-size: 20px; font-weight: 700; }
.layout.home-layout .post-item .excerpt { margin-top: 6px; }

/* 博客页：列表样式 */
.layout.blog-layout .articles { grid-template-columns: 1fr; gap: 0; }
.layout.blog-layout .articles .post-item {
  display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 16px;
  padding: 14px 0; border-bottom: 2px solid var(--border);
  background: transparent;
}
.layout.blog-layout .articles .post-item.no-thumb { grid-template-columns: minmax(0, 1fr); }
.layout.blog-layout .articles .post-item:last-child { border-bottom: none; }
.layout.blog-layout .post-item .thumb {
  height: 140px; border: 2px solid var(--border); background: var(--bg-soft);
  width: 100%; box-sizing: border-box; overflow: hidden;
}

/* 搜索页：列表样式，与首页/博客统一为非卡片列表 */
.layout.search-layout .articles { grid-template-columns: 1fr; gap: 0; }
.layout.search-layout .articles .post-item {
  display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 16px;
  padding: 12px 0; border-bottom: 2px solid var(--border);
  background: transparent;
}
.layout.search-layout .articles .post-item.no-thumb { grid-template-columns: minmax(0, 1fr); }
.layout.search-layout .articles .post-item:last-child { border-bottom: none; }
.layout.search-layout .post-item .thumb { height: 120px; border: 2px solid var(--border); background: var(--bg-soft); }
.layout.search-layout .post-item .thumb { width: 100%; box-sizing: border-box; overflow: hidden; }
.layout.search-layout .post-item .content { padding: 0; }
.layout.search-layout .post-item .title { font-size: 20px; font-weight: 700; }
.layout.search-layout .post-item .excerpt { margin-top: 6px; }

/* 搜索命中高亮 */
.articles .title em, .articles .excerpt em { background: #fff3a0; font-style: normal; padding: 0 2px; }

/* 搜索页：加载更多按钮居中与间距 */
/* 统一使用全局 .load-more，移除页面特定的间距差异 */
/* 删除 search 专用的 .load-more 间距，统一到全局 */

/* ===== Auth Pages: Login & Register ===== */
/* Post page: align with UI prototype */
.post-title { margin: 0 0 12px; font-size: 30px; line-height: 1.35; letter-spacing: -0.01em; }
.post-body { display: grid; gap: 16px; overflow-wrap: anywhere; word-break: break-word; }
.post-body pre { background: var(--bg-soft); border: 2px solid var(--border); border-radius: 8px; padding: 12px; overflow: visible; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 13px; line-height: 1.6; max-width: 100%; white-space: pre-wrap; word-break: break-word; }
.post-body pre[class*="language-"] { border-radius: 10px; box-shadow: 0 6px 20px rgba(15,23,42,0.08); white-space: pre-wrap !important; word-break: break-word; }
.post-body pre[class*="language-"] { position: relative; padding-top: 36px; }
.post-body pre.line-numbers .line-numbers-rows { border-right: 0; }
.post-body pre.line-numbers .line-numbers-rows > span { background: none; border: 0; border-bottom: 0 !important; box-shadow: none !important; }
.post-body pre.line-numbers .line-numbers-rows > span:before { border: 0 !important; box-shadow: none !important; }
.post-body pre[class*="language-"] { background: #2d2d2d; }
.post-body pre[class*="language-"] code { background: transparent !important; text-shadow: none !important; white-space: inherit !important; }
.post-body pre[class*="language-"], .post-body pre[class*="language-"] code { text-shadow: none !important; }
.post-body pre[class*="language-"] code span { border: 0 !important; box-shadow: none !important; background-image: none !important; }
.post-body pre[class*="language-"] .token.comment,
.post-body pre[class*="language-"] .token.prolog,
.post-body pre[class*="language-"] .token.doctype,
.post-body pre[class*="language-"] .token.cdata { font-style: normal !important; text-decoration: none !important; }
.post-body pre[class*="language-"] .token.comment { border: 0 !important; background: transparent !important; box-shadow: none !important; }
.post-body pre[class*="language-"] .line-highlight { background: transparent !important; box-shadow: none !important; }
.post-body pre[class*="language-"] .toolbar { position: absolute; top: 0; left: 0; right: 0; height: 36px; display: flex; align-items: center; justify-content: space-between; padding: 6px 10px; border-bottom: 1px solid rgba(255,255,255,0.12); background: rgba(0,0,0,0.25); }
.post-body pre[class*="language-"] .toolbar .toolbar-item { font-size: 12px; color: #e5e7eb; }
.post-body pre[class*="language-"] .toolbar .toolbar-item button { border: 1px solid rgba(255,255,255,0.14); border-radius: 6px; padding: 4px 8px; background: rgba(255,255,255,0.1); color: #fff; }
.post-body code { background: var(--bg-soft); border: 1px solid var(--border); border-radius: 6px; padding: 2px 6px; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 13px; white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-word; }
.post-body pre code { background: transparent; border: 0; padding: 0; }
.post-body table { width: 100%; border-collapse: collapse; margin: 12px 0; table-layout: fixed; max-width: 100%; }
.post-body th, .post-body td { border: 2px solid var(--border); padding: 8px 10px; text-align: left; word-break: break-word; }
.post-body thead { background: var(--bg-soft); }
.post-body tbody tr:nth-child(odd) { background: #fff; }
.post-body tbody tr:nth-child(even) { background: var(--bg-soft); }
.post-actions { display: flex; gap: 10px; align-items: center; margin-top: 16px; justify-content: flex-end; }
.header-stats { margin-left: auto; }

.post-body img, .post-body video, .post-body iframe { max-width: 100%; height: auto; }
.post-body svg { max-width: 100%; height: auto; }
.post-body * { max-width: 100%; }
.card .content { min-width: 0; }

/* Similar articles simple list */
.similar-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.similar-list a { color: var(--text); text-decoration: none; }
.similar-list a:hover { color: var(--primary); }
.similar-list .meta { color: var(--text-soft); font-size: 12px; }
.similar-list li { padding: 10px 0; border-bottom: 1px solid var(--border); }
.similar-list li:last-child { border-bottom: none; }

/* Tags cloud (sidebar) */
.tags-cloud { display: flex; flex-wrap: wrap; gap: 8px; }
.tags-cloud a { text-decoration: none; color: var(--text); background: var(--bg-soft); border: 2px solid var(--border); border-radius: 0; padding: 6px 10px; }
.tags-cloud a:hover { color: var(--primary); border-color: var(--primary); }

/* Section separation cards */
.similar-card .section-head, .comments-card .comments-head { margin-bottom: 8px; }
.comments-head { display: flex; align-items: center; justify-content: space-between; padding-bottom: 8px; border-bottom: 1px solid var(--border); }
.comments-head .count { color: var(--text-soft); font-weight: 600; }

/* Comments layout */
.comments-list { display: grid; gap: 0; }
.comment { padding: 12px 0; background: transparent; border-bottom: 1px solid var(--border); border-radius: 0; }
.comments-list .comment:last-child { border-bottom: none; }
.comment-head { display: flex; align-items: center; gap: 8px; }
.comment .avatar { width: 32px; height: 32px; border-radius: 50%; background: transparent; border: 1px solid var(--border); color: var(--text); display: flex; align-items: center; justify-content: center; font-weight: 600; }
.comment .meta { display: inline-flex; flex-direction: row; align-items: baseline; gap: 6px; }
.comment-content-row { display: grid; grid-template-columns: 1fr auto; align-items: start; gap: 8px; margin-top: 8px; }
.comment-body { padding-left: 40px; color: var(--text-soft); line-height: 1.7; }
.comment-form { margin-top: 12px; display: grid; gap: 8px; }
.comment-form-actions { display: flex; justify-content: flex-end; }
.comment-actions { display: flex; gap: 6px; align-items: center; justify-content: flex-end; }
.comment-actions .button { border: 1px solid var(--border); background: transparent; color: var(--text-soft); padding: 6px 10px; border-radius: 999px; }
.comment-actions .button:hover { background: var(--bg-soft); color: var(--text); }
.comment-actions .button .icon { color: var(--text-soft); }
.comment .like-btn.liked { background: var(--primary); color: #fff; border-color: var(--primary); border-radius: 999px; }
.reply-form { margin-top: 8px; display: grid; gap: 8px; }
.reply-form .actions { display: flex; gap: 8px; justify-content: flex-end; }
.replies { margin-top: 8px; display: grid; gap: 8px; padding-left: 20px; }
.comment.reply { padding: 8px 0; border: 0; background: transparent; border-bottom: none; }

/* Sidebar sticky ToC */
.layout.post-layout .sidebar .widget.toc { position: sticky; top: 90px; align-self: start; max-height: calc(100vh - 120px); display: grid; grid-template-rows: auto 1fr; }
.layout.post-layout .sidebar .widget.toc .widget-body { overflow-y: auto; overflow-x: hidden; }
.layout.post-layout .sidebar .widget.toc .widget-body { scrollbar-width: thin; scrollbar-color: var(--text-soft) var(--bg-soft); }
.layout.post-layout .sidebar .widget.toc .widget-body::-webkit-scrollbar { width: 6px; }
.layout.post-layout .sidebar .widget.toc .widget-body::-webkit-scrollbar-track { background: var(--bg-soft); }
.layout.post-layout .sidebar .widget.toc .widget-body::-webkit-scrollbar-thumb { background: var(--text-soft); border-radius: 3px; }
.layout.post-layout .sidebar .widget.toc .widget-body::-webkit-scrollbar-thumb:hover { background: var(--text); }
.layout.post-layout #toc { list-style: none; margin: 0; padding: 8px 14px; display: grid; gap: 8px; overflow-x: hidden; }
.layout.post-layout #toc li { display: flex; align-items: center; gap: 10px; }
.layout.post-layout #toc li { min-width: 0; }
.layout.post-layout #toc li > * { min-width: 0; }
.layout.post-layout #toc a { flex: 1; display: block; color: var(--text); text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; max-width: 100%; }
.layout.post-layout #toc a * { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.layout.post-layout #toc a:hover { color: var(--primary); }
/* 详情页：相似文章列表为非卡片列表样式，与首页/博客统一 */
.layout.post-layout .articles .post-item {
  display: grid; grid-template-columns: 180px 1fr; gap: 16px;
  padding: 12px 0; border-bottom: 2px solid var(--border);
  background: transparent;
}
.layout.post-layout .articles .post-item:last-child { border-bottom: none; }
.layout.post-layout .post-item .thumb { height: 120px; border: 2px solid var(--border); background: var(--bg-soft); }
.layout.post-layout .post-item .content { padding: 0; }
.layout.post-layout .post-item .title { font-size: 20px; font-weight: 700; }
.auth-page .auth-main { padding: 24px 0; }
/* 让登录/注册主区域自适应拉满全屏（除去头尾），并居中显示 */
body.auth-page { min-height: 100vh; display: flex; flex-direction: column; }
body.auth-page .auth-main { flex: 1 0 auto; display: flex; align-items: center; justify-content: center; }
/* 认证页面板宽度更友好，避免内容过窄 */
.auth-page .auth-panel { width: 100%; max-width: 720px; }
.auth-page .auth-panel { border: 1px solid var(--border); border-radius: 8px; background: var(--card); padding: 24px; box-shadow: 0 8px 24px rgba(15,23,42,0.06); margin: 0 auto; }
.auth-page .auth-panel h2 { margin: 0 0 16px; font-size: 24px; letter-spacing: -0.02em; text-align: center; }
.auth-page .auth-form .form-row { display: grid; gap: 8px; margin: 14px 0; }
.auth-page .auth-form label { font-weight: 600; }
.auth-page .auth-form .input { border: 2px solid var(--border); background: #fff; color: var(--text); padding: 12px 14px; border-radius: 8px; width: 100%; outline: none; transition: box-shadow .2s ease, border-color .2s ease, background .2s ease; }
.auth-page .auth-actions { display: flex; gap: 10px; justify-content: center; margin: 18px 0; }
/* 输入附加控件：密码显示切换与容器 */
.auth-page .input-wrap { position: relative; }
.auth-page .toggle-eye { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); cursor: pointer; color: var(--text-soft); padding: 6px; border-radius: 6px; transition: color .2s ease, background .2s ease; }

/* Error pages */
body.error-page { min-height: 100vh; display: flex; flex-direction: column; }
.error-main { flex: 1 0 auto; display: flex; align-items: center; justify-content: center; padding: 24px 0; }
.error-panel { width: 100%; max-width: 720px; border: 1px solid var(--border); border-radius: 8px; background: var(--card); padding: 24px; box-shadow: 0 8px 24px rgba(15,23,42,0.06); margin: 0 auto; }
.error-panel .section-head { justify-content: center; }
.error-panel .section-head h2 { margin: 0; font-size: 24px; letter-spacing: -0.02em; }
.error-panel .content { text-align: center; color: var(--text-soft); }
.error-panel .content p { margin: 8px 0; }
.error-actions { display: flex; justify-content: center; margin-top: 16px; }
.auth-page .toggle-eye:hover { color: var(--text); background: var(--bg-soft); }
.auth-page .toggle-eye svg { display: block; width: 20px; height: 20px; }
.auth-page .input-wrap:focus-within .input { border-color: var(--text); box-shadow: 0 0 0 4px var(--primary-soft); }
.auth-page .auth-form .input:focus { border-color: var(--text); box-shadow: 0 0 0 4px var(--primary-soft); }
/* 表单错误与提示 */
.auth-page .form-error { display: none; margin-top: 8px; border: 2px solid var(--primary); background: rgba(225,29,72,0.08); color: var(--primary); padding: 10px 12px; border-radius: 6px; font-weight: 600; }
.auth-page .hint { margin-top: 8px; color: var(--text-soft); font-size: 13px; text-align: center; }
.auth-page .auth-actions .accent { min-width: 120px; }

/* 注册页：邮箱输入与发送按钮同行、紧凑布局 */
.auth-page .form-row.inline.email-line { grid-template-columns: 1fr auto; align-items: center; gap: 6px; }
.auth-page .form-row.inline.email-line .actions { margin-top: 0; }

@media (max-width: 640px) {
  .auth-page .auth-panel { padding: 16px; max-width: 92vw; }
  .auth-page .auth-actions { flex-direction: column; gap: 12px; }
}
/* 通用按钮类（同时用于 <button> 和 <a>） */
.button { border: 2px solid var(--border); background: #fff; color: var(--text); padding: 10px 14px; border-radius: 0; text-decoration: none; display: inline-block; font-weight: 600; }
.button.accent { background: var(--text); color: #fff; border-color: var(--text); }

/* 通用表单样式（用于 write/center 等页面） */
.form-row { display: grid; gap: 8px; margin: 12px 0; }
.form-row.inline { grid-template-columns: 1fr 1fr; align-items: end; }
/* 写作页：三列紧凑行（标签/分类/类型）- 极简对齐 */
.form-row.inline.compact-three { grid-template-columns: 1fr 1fr auto; align-items: end; gap: 8px; }
.form-row.inline.compact-three > div label { display: block; font-weight: 600; margin-bottom: 6px; color: var(--text); }
.form-row.inline.compact-three > div:last-child label { display: inline-block; margin: 0 10px 0 0; color: var(--text-soft); }
.form-row.inline.compact-three .radio-group { display: inline-flex; align-items: center; gap: 12px; padding: 0; border: 0; background: transparent; border-radius: 0; }
.form-row.inline.compact-three .radio-group label { margin: 0; color: var(--text); }
.form-row.inline.compact-three .radio-group input { vertical-align: middle; }
.form-row.inline.compact-three .select { min-width: 200px; }
.input, .select, .textarea { border: 2px solid var(--border); background: #fff; color: var(--text); padding: 10px 12px; border-radius: 0; width: 100%; font-size: 14px; }
.select { appearance: none; }
.radio-group { display: flex; gap: 16px; align-items: center; }
.actions { display: flex; gap: 8px; justify-content: flex-end; margin-top: 12px; }
.hint { color: var(--text-soft); font-size: 12px; }
.write-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 16px; align-items: start; }
.meta-panel { position: sticky; top: 80px; height: max-content; }
.edit-main .editor-modes { margin: 10px 0; display: flex; gap: 8px; }
.edit-main.card { padding: 16px; }
.editor-area { border: 1px solid var(--border); background: #fff; min-height: 420px; padding: 10px; }
.mode-tab { border-radius: 999px; }
.mode-tab.active { color: var(--text); }
.meta-panel .form-row { margin: 10px 0; }
.meta-panel .radio-group { display: inline-flex; align-items: center; gap: 12px; }
.meta-panel .cover-uploader { justify-items: center; text-align: center; }
.meta-panel .cover-uploader .cover-preview { max-width: 100%; }
.meta-panel .cover-uploader .cover-controls { display: flex; justify-content: center; }

/* 通用弹窗样式 */
.modal { position: fixed; inset: 0; background: rgba(17,24,39,0.35); display: grid; place-items: center; z-index: 1000; }
.dialog { width: 560px; max-width: 92vw; border: 2px solid var(--border); border-radius: 8px; background: var(--card); }
.dialog-head { display: flex; align-items: center; justify-content: space-between; padding: 12px 14px; border-bottom: 2px solid var(--border); }
.dialog-body { padding: 14px; }
.dialog-actions { padding: 12px 14px; border-top: 2px solid var(--border); display: flex; justify-content: flex-end; }

/* ===== Tags Page ===== */
.tags-page .tags-main { padding: 24px 0; }
.tags-page .tags-summary { color: var(--text-soft); margin: 0 0 12px; }
.tags-page .section-head .tags-summary { margin: 0; }
.tags-page .tag-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; }
.tags-page .tag-item {
  display: flex; justify-content: space-between; align-items: center;
  border: 2px solid var(--border); background: #fff; padding: 14px 16px;
  text-decoration: none; color: var(--text);
  transition: transform .12s ease, background .12s ease, border-color .12s ease;
}
.tags-page .tag-item:hover { background: var(--bg-soft); border-color: var(--text); transform: translateY(-1px); }
.tags-page .tag-item .name { font-weight: 700; font-size: 16px; letter-spacing: 0.2px; }
.tags-page .tag-item .count {
  color: var(--text); font-size: 12px; font-weight: 700;
  border: 2px solid var(--border); background: var(--bg-soft);
  padding: 4px 10px; border-radius: 6px; min-width: 42px; text-align: center;
}
/* 标签页：加载更多按钮居中与间距 */
/* 删除 tags 专用的 .load-more 间距，统一到全局 */

@media (max-width: 820px) {
  .tags-page .tag-grid { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
}
.layout.blog-layout .post-item .content { padding: 0; }
.layout.blog-layout .post-item .title { font-size: 20px; font-weight: 700; }
.layout.blog-layout .post-item .excerpt { margin-top: 6px; }
.layout.blog-layout .list-meta .stats .icon { width: 18px; height: 18px; }
.card { border: 2px solid var(--border); border-radius: 0; padding: 20px; background: var(--card); box-shadow: none; }
.card-header { display: flex; align-items: center; gap: 12px; margin-bottom: 8px;margin-top: 8px; }
.card .thumb { height: 120px; border: 2px solid var(--border); background: var(--bg-soft); margin-bottom: 12px; }
.layout.post-layout .card .thumb { aspect-ratio: 16 / 9; width: 100%; height: auto; overflow: hidden; border-radius: 8px; }
.layout.post-layout .card .thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.avatar { width: 32px; height: 32px; border-radius: 50%; background: var(--bg-soft); display: grid; place-items: center; font-weight: 700; color: var(--primary); }
.avatar.large { width: 56px; height: 56px; font-size: 20px; }
.bio { color: var(--text-soft); }
.meta { display: flex; flex-direction: column; }
.author { text-decoration: none; color: var(--text); font-weight: 600; }
.date { font-size: 12px; color: var(--text-soft); }
.title { display: inline-block; margin: 6px 0 8px; font-size: 20px; color: var(--text); text-decoration: none; font-weight: 700; }
.title:hover { color: var(--primary); }
.excerpt { margin: 0 0 10px; color: var(--text-soft); }
.tags { display: flex; flex-wrap: wrap; gap: 8px; font-size: 13px; color: var(--text-soft); }
.tags span { background: var(--bg-soft); border: 2px solid var(--border); border-radius: 0; padding: 6px 10px; }
.tags a { text-decoration: none; color: var(--text-soft); background: var(--bg-soft); border: 2px solid var(--border); border-radius: 0; padding: 6px 10px; }
.tags a:hover { color: var(--primary); border-color: var(--primary); }
.tag { border: 2px solid var(--border); background: #fff; border-radius: 0; padding: 6px 10px; }
.stats { display: flex; gap: 16px; font-size: 14px; color: var(--text-soft); margin-top: 8px; }

.filters-bar { display: flex; gap: 8px; flex-wrap: wrap; }
.filters-bar.collapsed { flex-wrap: nowrap; max-height: 44px; overflow: hidden; position: relative; }
.filters-actions { margin-top: 8px; display: flex; justify-content: center; }

.sidebar { gap: 16px; }
.sidebar, .sidebar .widget { max-width: 100%; }
.sidebar .widget img { max-width: 100%; height: auto; display: block; }
.widget { border: 2px solid var(--border); border-radius: 0; background: var(--card); overflow: hidden; }
.widget-head { padding: 12px 14px; border-bottom: 2px solid var(--border); display: flex; align-items: center; justify-content: space-between; }
.widget-head h3 { margin: 0; font-size: 16px; }
.widget-body { padding: 14px; }
.ranking { list-style: none; margin: 0; padding: 8px 14px; display: grid; gap: 8px; }
.ranking li { display: flex; align-items: center; justify-content: space-between; }
.rank { width: 24px; height: 24px; border-radius: 6px; background: var(--bg-soft); display: grid; place-items: center; font-weight: 700; }
.score { color: var(--text-soft); font-size: 12px; }
.notice p { margin: 0; color: var(--text-soft); }

.site-footer { border-top: 2px solid var(--border); padding: 18px 0; background: var(--bg-soft); }
.footer-inner { display: flex; align-items: center; justify-content: space-between; }
.links { display: flex; gap: 12px; }
.links a { color: var(--text-soft); text-decoration: none; }
.links a:hover { color: var(--text); }

@media (max-width: 820px) {
  .layout { grid-template-columns: 1fr; gap: 24px; padding: 24px 0; }
  .layout.home-layout .articles { grid-template-columns: 1fr; }
  .layout.home-layout .articles .post-item { grid-template-columns: 120px 1fr; }
  .layout.home-layout { grid-template-areas: 'main' 'sidebar'; }
  .layout.blog-layout .articles { grid-template-columns: 1fr; }
  .layout.blog-layout .articles .post-item { grid-template-columns: 120px 1fr; }
  .layout.search-layout .articles { grid-template-columns: 1fr; }
  .layout.search-layout .articles .post-item { grid-template-columns: 120px 1fr; }
  .write-layout { grid-template-columns: 1fr; }
  .meta-panel { position: static; }
}

@media (max-width: 640px) {
  .header-inner { gap: 12px; }
  .main-nav { display: none; }
  .search-box input { width: 160px; }
  .hero h1 { font-size: 24px; }
  .hero-search input { width: 320px; }
}

/* 暗色模式 */
.dark {
  --bg: #0b0f1a;
  --bg-soft: #0f1525;
  --text: #eef2ff;
  --text-soft: #cbd5e1;
  --border: #1f2937;
  --card: #0f1525;
  --primary-soft: rgba(225, 29, 72, 0.18);
}

/* ===== v2 enhancements: visual refinements, palette, and micro-interactions ===== */
:root {
  --primary: #e11d48; /* rose-600 */
  --border: #e6e8eb;
  --primary-soft: rgba(225, 29, 72, 0.12);
}

.site-header {
  box-shadow: 0 6px 24px rgba(15,23,42,0.06);
}
.header-inner { padding: 14px 0; }
.main-nav a {
  position: relative;
  transition: color .2s ease;
}
.main-nav a::after {
  content: "";
  position: absolute; left: 10px; right: 10px; bottom: 4px;
  height: 2px; border-radius: 2px; background: transparent; transition: background .2s ease;
}
.main-nav a:hover::after, .main-nav a.active::after { background: var(--primary); }

.hero {
  background:
    radial-gradient(50% 100% at 80% 0%, rgba(225,17,72,0.12) 0%, rgba(255,255,255,0) 60%),
    linear-gradient(180deg, var(--bg-soft), #fff);
}
.hero-inner { padding: 48px 0; }
.hero h1 { font-size: 36px; letter-spacing: -0.02em; }
.hero p { font-size: 16px; }
.hero-search {
  border-radius: 999px; padding: 12px; border-color: #e9edf1;
}
.hero-search input { font-size: 16px; }
.hero-search:focus-within { box-shadow: 0 0 0 4px rgba(225, 17, 72, 0.12); }

/* ===== Personal Center (center.html) ===== */
.center-page .user-main {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 24px;
  padding: 24px 0;
}
.center-page .profile-head { display: flex; align-items: center; gap: 12px; }
/* 个人中心布局与样式 */
body.center-page .user-main { display: grid; grid-template-columns: 320px 1fr; gap: 24px; padding: 24px 0; }
.center-page .panel { border: 1px solid var(--border); border-radius: 8px; background: var(--card); }
.center-page .user-sidebar { padding: 16px; }
.center-page .user-content { padding: 16px; }
.center-page .stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 12px; }
.center-page .stat { text-align: center; background: var(--bg-soft); border: 1px solid var(--border); border-radius: 6px; padding: 10px; }
.center-page .tabs { display: flex; gap: 8px; }
.center-page .tab { padding: 8px 12px; border: 1px solid var(--border); background: #fff; cursor: pointer; }
.center-page .tab.active { background: var(--primary-soft); border-color: var(--primary); }
.center-page .sidebar-actions { margin-top: 16px; display: flex; justify-content: center; }
.center-page .articles { display: grid; grid-template-columns: 1fr; gap: 18px; }
.center-page .load-more { margin-top: 16px; text-align: center; }
.center-page .articles .post-item { display: grid; grid-template-columns: 180px 1fr; gap: 12px; padding: 18px 0; border-bottom: 1px solid var(--border); }
.center-page .articles .post-item.no-thumb { grid-template-columns: 1fr; }
.center-page .post-item .thumb { height: 120px; border: 2px solid var(--border); background: var(--bg-soft); }
.center-page .post-item .content .excerpt { color: var(--text-soft); margin: 6px 0; }
.center-page .post-item .actions { display: flex; gap: 10px; justify-content: flex-end; }


.center-page .article .actions { display: flex; gap: 8px; justify-content: flex-start; }

/* 列表项底部：用户信息 + 统计 右对齐一行 */
.post-item .content .list-meta { display: flex; gap: 10px; align-items: center; justify-content: flex-start; margin-top: 6px; }
.post-item .content .list-meta .stats { margin-left: auto; display: inline-flex; gap: 10px; color: var(--text-soft); }
.post-item .content .list-meta .card-header { display: inline-flex; align-items: center; gap: 8px; }

/* 写作页布局与编辑器样式 */
.editor-shell { border: 1px solid var(--border); border-radius: 8px; background: var(--card); padding: 16px; }
.editor-modes { display: flex; gap: 8px; margin: 8px 0 12px; }
.mode-tab { padding: 8px 12px; border: 1px solid var(--border); background: #fff; cursor: pointer; }
.mode-tab.active { background: var(--primary-soft); border-color: var(--primary); }
.tool-btn { padding: 6px 10px; border: 1px solid var(--border); background: #fff; cursor: pointer; }
#rich-editor { background: #fff; border: 1px solid var(--border); }
#rich-editor .ql-container { min-height: 320px; }
#rich-editor .ql-editor { min-height: 280px; }
.md-split { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: start; }
.md-editor { width: 100%; }
.md-preview { border: 1px solid var(--border); background: #fff; min-height: 320px; padding: 10px; }
.EasyMDEContainer { width: 100%; display: block; }
.EasyMDEContainer .CodeMirror { height: 400px; }
.EasyMDEContainer .CodeMirror-scroll { height: 100%; overflow-y: auto; }
.CodeMirror-fullscreen { height: 100vh !important; }
/* EasyMDE 全屏覆盖与层级，避免被顶部导航遮挡 */
.editor-toolbar.fullscreen { z-index: 2001 !important; }
.CodeMirror-fullscreen { z-index: 2000 !important; }
.editor-preview, .editor-preview-side { z-index: 2000 !important; }

/* 统一消息提示框 */
.message-bar { position: fixed; left: 50%; transform: translateX(-50%); bottom: 20px; z-index: 3000; background: rgba(31,41,55,0.95); color: #fff; padding: 10px 14px; border-radius: 6px; box-shadow: 0 6px 20px rgba(0,0,0,0.2); max-width: 80%; }
.message-bar.hidden { display: none; }

/* 标签建议下拉 */
.input-with-suggest { position: relative; }
.suggest-list { position: absolute; left: 0; right: 0; top: calc(100% + 4px); background: #fff; border: 1px solid var(--border); border-radius: 6px; box-shadow: 0 8px 24px rgba(0,0,0,0.1); overflow: hidden; }
.suggest-list.hidden { display: none; }
.suggest-list .item { padding: 8px 10px; cursor: pointer; }
.suggest-list .item:hover { background: var(--primary-soft); }

/* 封面上传：简化与美化 */
.cover-uploader { display: grid; gap: 8px; justify-items: center; text-align: center; }
.cover-uploader .cover-controls { display: inline-flex; align-items: center; gap: 8px; }
.cover-uploader .cover-preview {
  aspect-ratio: 16 / 9;
  width: 100%;
  max-width: 720px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg-soft);
  position: relative;
  overflow: hidden;
}
.cover-uploader .cover-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.cover-uploader .remove-btn {
  position: absolute;
  top: 8px;
  right: 8px;
  padding: 6px 8px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,0.92);
  border-radius: 6px;
}
.cover-uploader .remove-btn:hover { background: #fff; }

/* 响应式调整 */
@media (max-width: 820px) {
  .center-page .user-main { grid-template-columns: 1fr; }
  .center-page .article { grid-template-columns: 1fr; }
  .form-row.inline { grid-template-columns: 1fr; }
  .form-row.inline.compact-three { grid-template-columns: 1fr; }
  .md-split { grid-template-columns: 1fr; }
}

.theme-minimal {
  --primary: #0ea5e9;
  --bg: #f8fafc;
  --bg-soft: #f1f5f9;
  --text: #0f172a;
  --text-soft: #475569;
  --border: #e2e8f0;
  --card: #ffffff;
  --primary-soft: rgba(14,165,233,0.12);
}

.theme-minimal .card {
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 24px;
  background: var(--card);
  box-shadow: 0 6px 18px rgba(15,23,42,0.06);
}

.theme-minimal .card-header { margin-bottom: 12px; }

.theme-minimal .button {
  border: 1px solid var(--border);
  background: #fff;
  color: var(--text);
  padding: 10px 14px;
  border-radius: 10px;
  transition: all .15s ease;
}
.theme-minimal .button:hover { background: var(--bg-soft); }
.theme-minimal .button.accent { background: var(--primary); color: #fff; border-color: var(--primary); }

.theme-minimal .tab {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 6px 12px;
  color: var(--text-soft);
}
.theme-minimal .tab.active { background: var(--primary-soft); color: var(--text); border-color: var(--primary); }

.theme-minimal .chip {
  border: 1px solid var(--border);
  background: #fff;
  border-radius: 999px;
  padding: 6px 12px;
  color: var(--text);
}
.theme-minimal .chip.active { background: var(--primary-soft); border-color: var(--primary); }

.theme-minimal .section-head { border-bottom: 1px solid var(--border); margin-bottom: 20px; padding-bottom: 10px; }

.theme-minimal .articles .post-item { border-bottom: 1px solid var(--border); padding: 16px 0; }

.theme-minimal .tags span, .theme-minimal .tags a, .theme-minimal .tag {
  border: 1px solid var(--border);
  background: var(--bg-soft);
  border-radius: 999px;
  padding: 4px 10px;
}

.theme-minimal .title { transition: color .15s ease; }
.theme-minimal .title:hover { color: var(--primary); }

.theme-minimal .stats { color: var(--text-soft); }

.theme-minimal .comment { border-bottom: 1px solid var(--border); }

.theme-minimal .site-header { background: #fff; border-bottom: 1px solid var(--border); box-shadow: 0 8px 24px rgba(15,23,42,0.05); }
.theme-minimal .header-inner { padding: 16px 0; gap: 16px; }
.theme-minimal .logo { color: var(--text); }
.theme-minimal .logo span { color: var(--primary); }
.theme-minimal .main-nav { gap: 12px; }
.theme-minimal .main-nav a { color: var(--text-soft); padding: 10px 12px; }
.theme-minimal .main-nav a:hover, .theme-minimal .main-nav a.active { color: var(--text); }
.theme-minimal .main-nav a::after { background: transparent; }
.theme-minimal .search-box { border: 1px solid var(--border); border-radius: 999px; padding: 8px 12px; }
.theme-minimal .search-box input { width: 260px; }
.theme-minimal .search-box button { border: 1px solid var(--border); border-radius: 999px; }

.theme-minimal .hero { background: linear-gradient(180deg, var(--bg-soft), #fff); }
.theme-minimal .hero-inner { padding: 48px 0; }
.theme-minimal .hero h1 { font-size: 36px; letter-spacing: -0.02em; }
.theme-minimal .hero p { font-size: 16px; color: var(--text-soft); }
.theme-minimal .hero-search { border-radius: 999px; padding: 12px; border: 1px solid var(--border); }
.theme-minimal .hero-search input { font-size: 16px; }
.theme-minimal .hero-search:focus-within { box-shadow: 0 0 0 4px var(--primary-soft); }
.theme-minimal .hero-search button { border: 1px solid var(--border); border-radius: 999px; padding: 8px 14px; background: #fff; }

.theme-minimal .layout { gap: 24px; padding: 24px 0; }
.theme-minimal .layout.home-layout { align-items: start; grid-template-areas: 'main sidebar'; }
.theme-minimal .layout.home-layout > section { grid-area: main; grid-column: 1; position: relative; z-index: 1; overflow-x: hidden; }
.theme-minimal .layout.home-layout > aside { grid-area: sidebar; grid-column: 2; overflow-x: hidden; width: 100%; box-sizing: border-box; }
.theme-minimal .thumb { border: 1px solid var(--border); border-radius: 8px; background: var(--bg-soft); }

.theme-minimal .sidebar .widget { border: 1px solid var(--border); border-radius: 10px; background: var(--card); box-shadow: 0 6px 18px rgba(15,23,42,0.06); }
.theme-minimal .widget-head { border-bottom: 1px solid var(--border); }
.theme-minimal .tags-cloud a { border: 1px solid var(--border); border-radius: 999px; }

.theme-minimal .post-title { font-size: 32px; letter-spacing: -0.01em; }
.theme-minimal .post-actions .button { border-radius: 999px; }
.theme-minimal .comments-head { border-bottom: 1px solid var(--border); }
.theme-minimal .comment .avatar { border: 1px solid var(--border); background: var(--bg-soft); color: var(--text); }

.theme-minimal .center-page .panel { border: 1px solid var(--border); border-radius: 10px; background: var(--card); box-shadow: 0 6px 18px rgba(15,23,42,0.06); }
.theme-minimal .center-page .stat { background: var(--bg-soft); border: 1px solid var(--border); border-radius: 8px; }
.theme-minimal .center-page .tab { border-radius: 999px; }
.theme-minimal .center-page .load-more .button { border-radius: 999px; }

.theme-minimal .tags-page .tag-item { border: 1px solid var(--border); border-radius: 10px; background: #fff; }
.theme-minimal .tags-page .tag-item .count { border: 1px solid var(--border); background: var(--bg-soft); border-radius: 999px; }

/* ===== Content beautification: index/blog/post ===== */
.theme-minimal .filters-bar { display: flex; flex-wrap: wrap; gap: 10px; margin: 8px 0 16px; }
.theme-minimal .articles { display: grid; gap: 18px; }

.theme-minimal .layout.home-layout .articles .post-item,
.theme-minimal .layout.search-layout .articles .post-item { grid-template-columns: 180px 1fr; padding: 18px 0; }
.theme-minimal .layout.blog-layout .articles .post-item { grid-template-columns: 200px 1fr; padding: 20px 0; }

.theme-minimal .post-item .title { font-size: 22px; font-weight: 700; letter-spacing: -0.01em; margin: 6px 0 4px; line-height: 1.35; }
.theme-minimal .layout.home-layout .post-item .title,
.theme-minimal .layout.blog-layout .post-item .title,
.theme-minimal .layout.search-layout .post-item .title,
.theme-minimal .layout.post-layout .post-item .title,
.theme-minimal .user-page .post-item .title,
.theme-minimal .center-page .post-item .title { font-size: 22px; font-weight: 700; letter-spacing: -0.01em; line-height: 1.35; color: var(--text); text-decoration: none; margin: 6px 0 4px; }
.theme-minimal .layout.home-layout .post-item .title:hover,
.theme-minimal .layout.blog-layout .post-item .title:hover,
.theme-minimal .layout.search-layout .post-item .title:hover,
.theme-minimal .layout.post-layout .post-item .title:hover,
.theme-minimal .user-page .post-item .title:hover,
.theme-minimal .center-page .post-item .title:hover,
.theme-minimal .layout.home-layout .post-item .title:focus,
.theme-minimal .layout.blog-layout .post-item .title:focus,
.theme-minimal .layout.search-layout .post-item .title:focus,
.theme-minimal .layout.post-layout .post-item .title:focus,
.theme-minimal .user-page .post-item .title:focus,
.theme-minimal .center-page .post-item .title:focus { color: var(--primary); }
.theme-minimal .post-item .excerpt { color: var(--text-soft); font-size: 15px; line-height: 1.7; margin-top: 6px; }
.theme-minimal .post-item .meta .date { color: var(--text-soft); font-size: 12px; }
.theme-minimal .post-item .author { color: var(--text); font-weight: 600; }
.theme-minimal .stats { font-size: 13px; }

.theme-minimal .thumb img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 8px; }

.theme-minimal .post-title { line-height: 1.3; margin: 0 0 12px; }
.theme-minimal .post-body { font-size: 17px; line-height: 1.85; color: var(--text); }
.theme-minimal .post-body h2 { font-size: 24px; margin: 24px 0 10px; }
.theme-minimal .post-body h3 { font-size: 20px; margin: 18px 0 8px; }
.theme-minimal .post-body p { margin: 14px 0; }
.theme-minimal .post-body ul, .theme-minimal .post-body ol { margin: 12px 0 16px; padding-left: 20px; }
.theme-minimal .post-body img { border-radius: 10px; box-shadow: 0 8px 28px rgba(15,23,42,0.08); margin: 12px 0; }
.theme-minimal .post-tags { margin-top: 12px; }
.theme-minimal .post-actions { margin-top: 16px; }

/* Minimal solid icons */
.theme-minimal .icon { width: 16px; height: 16px; display: inline-block; vertical-align: -2px; margin-right: 6px; color: var(--text-soft); }
.theme-minimal .stats .icon { color: var(--text-soft); }
.theme-minimal .post-actions .button .icon { color: var(--text-soft); }
.theme-minimal .filters-bar a,
.theme-minimal .chip,
.theme-minimal .tabs .tab,
.theme-minimal .tab { text-decoration: none; }
.theme-minimal .filters-bar a:hover,
.theme-minimal .chip:hover,
.theme-minimal .tabs .tab:hover,
.theme-minimal .tab:hover { text-decoration: none; }

.theme-minimal .similar-card { margin-top: 20px; }
.theme-minimal .comments-card { margin-top: 24px; }
.theme-minimal .comments-head { margin-bottom: 12px; }


.theme-minimal .load-more .button { border-radius: 999px; }
.theme-minimal .pagination { margin-top: 16px; display: flex; gap: 8px; }
.theme-minimal .pagination .tab { text-decoration: none; }
.theme-minimal .pagination .tab.active { background: var(--primary-soft); border-color: var(--primary); }
.theme-minimal .user-menu { position: relative; }
.theme-minimal .user-trigger { display: flex; align-items: center; gap: 8px; border: 1px solid var(--border); border-radius: 0; padding: 6px 10px; background: #fff; }
.theme-minimal .user-dropdown { position: absolute; right: 0; top: calc(100% + 8px); background: #fff; border: 1px solid var(--border); border-radius: 0; box-shadow: 0 12px 32px rgba(15,23,42,0.08); min-width: 160px; padding: 8px; }
.theme-minimal .user-dropdown a { display: block; padding: 8px 10px; color: var(--text); border-radius: 0; text-decoration: none; }
.theme-minimal .user-dropdown a:hover { background: var(--bg-soft); }
.user-menu { position: relative; }
.user-trigger { display: inline-flex; align-items: center; gap: 8px; border: 2px solid var(--border); border-radius: 0; padding: 6px 10px; background: #fff; cursor: pointer; }
.user-trigger .avatar { width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--border); display: grid; place-items: center; font-weight: 700; color: var(--primary); background: var(--bg-soft); }
.user-trigger .name { font-weight: 600; }

.user-page .user-main { padding: 24px 0; }
.user-page .panel { border: 1px solid var(--border); border-radius: 8px; background: var(--card); padding: 16px; }
.user-page .profile-head { display: flex; align-items: center; gap: 12px; }
.user-page .articles { display: grid; grid-template-columns: 1fr; gap: 18px; }
.user-page .load-more { margin-top: 16px; text-align: center; }
.user-page .articles .post-item { display: grid; grid-template-columns: 180px 1fr; gap: 12px; padding: 18px 0; border-bottom: 1px solid var(--border); }
.user-page .post-item .thumb { height: 120px; border: 2px solid var(--border); background: var(--bg-soft); }
.user-page .post-item .content .excerpt { color: var(--text-soft); margin: 6px 0; }

.theme-minimal .user-page .panel { border: 1px solid var(--border); border-radius: 10px; background: var(--card); box-shadow: 0 6px 18px rgba(15,23,42,0.06); }
.theme-minimal .user-page .load-more .button { border-radius: 999px; }
.user-dropdown { position: absolute; right: 0; top: calc(100% + 8px); background: #fff; border: 2px solid var(--border); border-radius: 0; box-shadow: 0 12px 32px rgba(15,23,42,0.08); min-width: 160px; padding: 8px; display: grid; gap: 4px; }
.user-dropdown a { text-decoration: none; color: var(--text); padding: 8px 10px; border-radius: 0; }
.user-dropdown a:hover { background: var(--bg-soft); }
.post-item.no-thumb .content { grid-column: 1 / -1; }
.articles .post-item { width: 100%; max-width: 100%; box-sizing: border-box; overflow-x: hidden; }
.articles .post-item.no-thumb { overflow-x: hidden; }
.post-item .content, .post-item .excerpt, .post-item .tags { overflow-wrap: anywhere; word-break: break-word; }
.back-to-top { position: fixed; right: 24px; bottom: 24px; width: 48px; height: 48px; border: 2px solid var(--primary); background: var(--primary); color: #fff; border-radius: 999px; display: flex; align-items: center; justify-content: center; font-weight: 800; z-index: 1000; box-shadow: 0 6px 20px rgba(15,23,42,0.12); cursor: pointer; }
.back-to-top:hover { filter: brightness(0.95); }
