/*
Theme Name: YC
Author: QQ：2310858275
Version: 2.3.30
Requires at least: 5.9
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: yc
*/

/* ==========================================================================
   0. 设计变量（浅色·主模式）
   思路：横幅以上可以可爱、可以粉；横幅以下一律低饱和，
   确保正文是「白纸黑字」的阅读体验。
   ========================================================================== */
:root {
  /* 萌系强调色：只用于点缀（徽标、按钮、下划线、hover 描边） */
  --yc-pink: #ff8ab8;
  --yc-pink-deep: #e2618f;
  --yc-pink-soft: #ffe6f0;
  --yc-pink-mist: #fff5f9;
  --yc-blue: #8fc9f5;
  --yc-blue-soft: #eaf5ff;
  --yc-purple: #b9a6e8;
  --yc-mint: #9fe0cd;
  --yc-yellow: #ffd88a;

  /* 页面与容器 */
  --yc-bg: #fbf8fa;
  --yc-surface: #ffffff;
  --yc-surface-2: #f7f4f6;
  --yc-border: #efe7ec;
  --yc-border-strong: #e4d8e0;

  /* 文章卡片的一圈渐变描边（低饱和三色，和缩略图占位色同源） */
  --yc-card-line-1: #ffd5e5;
  --yc-card-line-2: #e6dcff;
  --yc-card-line-3: #d2eaff;

  /* 「没特色图」时缩略图的后两套轮换底色（第一套直接用 --yc-pink-soft → --yc-blue-soft） */
  --yc-ph-b1: #efe7ff;
  --yc-ph-b2: #fdeef7;
  --yc-ph-c1: #e4f4ff;
  --yc-ph-c2: #f0ebff;

  /* 文本：正文用近黑灰，保证对比度 >= 12:1 */
  --yc-text: #33303a;
  --yc-text-body: #3d3a44;
  --yc-text-soft: #7b7480;
  --yc-text-faint: #a49daa;

  /* 正文内链接：降饱和的莓果色，可读且不刺眼 */
  --yc-link: #b8437a;
  --yc-link-hover: #8f2f5d;

  /* 表单报错提示条（登录 / 注册页用） */
  --yc-danger-bg: #fff1f4;
  --yc-danger-line: #ffd9e2;
  --yc-danger-text: #b8355f;

  /* 尺寸 */
  --yc-radius-sm: 10px;
  --yc-radius: 16px;
  --yc-radius-lg: 22px;
  --yc-radius-pill: 999px;
  --yc-container: 1200px;
  --yc-sidebar-w: 320px;
  --yc-gap: 28px;
  --yc-hero-h: 420px;

  /* 阴影：柔和、无彩色溢出 */
  --yc-shadow-sm: 0 2px 8px rgba(90, 70, 85, .06);
  --yc-shadow: 0 8px 26px rgba(90, 70, 85, .08);
  --yc-shadow-lg: 0 18px 44px rgba(90, 70, 85, .14);

  /* 字体 */
  --yc-font: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC",
            "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
            "Helvetica Neue", Arial, sans-serif;
  --yc-font-title: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC",
                   -apple-system, "Segoe UI", Roboto, sans-serif;
  --yc-font-mono: "JetBrains Mono", "Cascadia Code", Consolas, "SFMono-Regular", Menlo,
                  Monaco, "Courier New", monospace;

  --yc-ease: cubic-bezier(.22, .61, .36, 1);
}

/* 暗色模式：同样克制，仅把底色压暗，强调色不变 */
html[data-theme="dark"] {
  --yc-pink-soft: #3a2733;
  --yc-pink-deep: #ff8ab8;
  --yc-pink-mist: #2a1f26;
  --yc-blue-soft: #1f2b36;
  --yc-bg: #17161b;
  --yc-surface: #201e26;
  --yc-surface-2: #292631;
  --yc-border: #322e3b;
  --yc-border-strong: #423c4d;
  /* 暗色下把描边压暗，只留一点色相，别让整排卡片发亮 */
  --yc-card-line-1: #57394a;
  --yc-card-line-2: #44405e;
  --yc-card-line-3: #2d435c;

  /* 同理，占位缩略图的后两套底色也要压暗，否则会在暗色下亮成一块白板 */
  --yc-ph-b1: #2f2a44;
  --yc-ph-b2: #3a2733;
  --yc-ph-c1: #1f2b36;
  --yc-ph-c2: #2b2740;
  --yc-text: #ece9f1;
  --yc-text-body: #ded9e5;
  --yc-text-soft: #a49dae;
  --yc-text-faint: #7d7689;
  --yc-link: #ff9dc0;
  --yc-link-hover: #ffc0d8;
  /* 报错条在深底上不能再用浅色底，否则整块发亮 */
  --yc-danger-bg: #3a2029;
  --yc-danger-line: #5c3040;
  --yc-danger-text: #ff9dc0;
  --yc-shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);
  --yc-shadow: 0 8px 26px rgba(0, 0, 0, .38);
  --yc-shadow-lg: 0 18px 44px rgba(0, 0, 0, .5);
}

/* ==========================================================================
   1. 基础重置
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: 90px;
}

body {
  margin: 0;
  background: var(--yc-bg);
  color: var(--yc-text-body);
  font-family: var(--yc-font);
  font-size: 16px;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

/* 页面级背景装饰：三枚四角星，只在两侧留白和底部空白处露出。
   挂 body::before 并压到 z-index:-1 —— 卡片 / 侧栏 / 日历都是不透明白底，
   星子飘到它们后面会被直接盖住，物理上碰不到任何文字；pointer-events:none
   也不吃鼠标事件。想关掉就删掉这一段规则，模板文件一行都不用动。 */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-repeat: no-repeat;
  background-image:
    url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M12%201.4c1.05%206.3%204.3%209.55%2010.6%2010.6-6.3%201.05-9.55%204.3-10.6%2010.6-1.05-6.3-4.3-9.55-10.6-10.6C7.7%2010.95%2010.95%207.7%2012%201.4Z'%20fill='%23ff8ab8'%20fill-opacity='.42'/%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M12%201.4c1.05%206.3%204.3%209.55%2010.6%2010.6-6.3%201.05-9.55%204.3-10.6%2010.6-1.05-6.3-4.3-9.55-10.6-10.6C7.7%2010.95%2010.95%207.7%2012%201.4Z'%20fill='%23a98df0'%20fill-opacity='.36'/%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M12%201.4c1.05%206.3%204.3%209.55%2010.6%2010.6-6.3%201.05-9.55%204.3-10.6%2010.6-1.05-6.3-4.3-9.55-10.6-10.6C7.7%2010.95%2010.95%207.7%2012%201.4Z'%20fill='%237cc6f5'%20fill-opacity='.30'/%3E%3C/svg%3E");
  background-position:
    5vw calc(100% - 15vh),
    calc(100% - 6vw) calc(100% - 26vh),
    calc(100% - 2.4vw) 44vh;
  background-size: 30px 30px, 18px 18px, 12px 12px;
}

/* 暗色下同样三颗星，整体降透明度即可 —— 深底上同样的粉紫会显得比浅底亮一档 */
html[data-theme="dark"] body::before { opacity: .55; }

/* 窄屏两侧没有留白可放，直接不出现 */
@media (max-width: 900px) {
  body::before { display: none; }
}

img, svg, video, canvas, iframe { max-width: 100%; height: auto; }
img { border-style: none; }

a { color: var(--yc-link); text-decoration: none; transition: color .18s var(--yc-ease); }
a:hover, a:focus { color: var(--yc-link-hover); }

button, input, select, textarea { font: inherit; color: inherit; }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--yc-font-title);
  color: var(--yc-text);
  line-height: 1.35;
  margin: 0 0 .6em;
  font-weight: 700;
  letter-spacing: .01em;
}

p { margin: 0 0 1.25em; }
ul, ol { padding-left: 1.4em; }

hr {
  border: 0;
  border-top: 1px dashed var(--yc-border-strong);
  margin: 2.2em 0;
}

::selection { background: var(--yc-pink-soft); color: var(--yc-text); }
html[data-theme="dark"] ::selection { background: #59405a; color: #fff; }

:focus-visible {
  outline: 2px solid var(--yc-pink);
  outline-offset: 2px;
  border-radius: 4px;
}

.screen-reader-text {
  border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
  height: 1px; width: 1px; margin: -1px; padding: 0; overflow: hidden;
  position: absolute !important; word-wrap: normal !important;
}
.skip-link:focus {
  background: var(--yc-surface); color: var(--yc-text);
  clip: auto; clip-path: none; height: auto; width: auto;
  left: 16px; top: 16px; padding: 10px 18px; z-index: 9999;
  border-radius: var(--yc-radius-pill); box-shadow: var(--yc-shadow);
  font-size: 14px;
}

/* ==========================================================================
   2. 布局骨架
   ========================================================================== */
.yc-container {
  width: 100%;
  max-width: var(--yc-container);
  margin: 0 auto;
  padding: 0 22px;
}

/* 中间正文 + 右侧工具栏 */
.yc-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) var(--yc-sidebar-w);
  gap: var(--yc-gap);
  align-items: start;
  padding-top: 40px;
  padding-bottom: 56px;
}

.yc-content { min-width: 0; }

/* 后台关掉「显示右侧工具栏」后列表占满整行 —— 两个类名压过响应式里的单类规则 */
.yc-layout.yc-layout--full { grid-template-columns: minmax(0, 1fr); }

/* ==========================================================================
   3. 顶部菜单栏
   ========================================================================== */
.yc-topbar {
  position: sticky;
  top: 0;
  z-index: 90;
  background: rgba(255, 255, 255, .82);
  backdrop-filter: saturate(180%) blur(14px);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  border-bottom: 1px solid var(--yc-border);
  transition: box-shadow .25s var(--yc-ease), background .25s var(--yc-ease);
}
html[data-theme="dark"] .yc-topbar { background: rgba(23, 22, 27, .82); }

.yc-topbar.is-stuck { box-shadow: var(--yc-shadow-sm); }

.yc-topbar__inner {
  display: flex;
  align-items: center;
  gap: 18px;
  min-height: 64px;
}

/* 站点品牌 */
.yc-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  color: var(--yc-text);
  font-family: var(--yc-font-title);
  font-weight: 800;
  font-size: 19px;
  letter-spacing: .02em;
}
.yc-brand:hover { color: var(--yc-text); }

.yc-brand__logo img {
  max-height: 38px;
  width: auto;
  border-radius: 10px;
  display: block;
}

/* 页头 Logo：由「外观 → 自定义 → 站点标识 → Logo」上传，形状与大小都不做裁切。
   默认是空的 —— 没上传时 .yc-brand__logo 整个不输出，页头只剩下面那团站名文字。
   早期版本这里有一枚 .yc-brand__mark（主题自带的猫娘徽标）兜底，已随默认值留空一并撤掉。 */

.yc-brand__text { display: flex; flex-direction: column; line-height: 1.15; }
.yc-brand__name { font-size: 18px; }
.yc-brand__slogan {
  font-size: 11px;
  font-weight: 500;
  color: var(--yc-text-faint);
  letter-spacing: .06em;
}

/* 主菜单 */
.yc-nav { margin-left: auto; }

.yc-nav ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 4px; }

.yc-nav li { position: relative; }

.yc-nav a {
  display: block;
  padding: 8px 14px;
  color: var(--yc-text-body);
  font-size: 15px;
  font-weight: 500;
  border-radius: var(--yc-radius-pill);
  transition: background .18s var(--yc-ease), color .18s var(--yc-ease);
}
.yc-nav a:hover,
.yc-nav a:focus { background: var(--yc-pink-soft); color: var(--yc-pink-deep); }

.yc-nav .current-menu-item > a,
.yc-nav .current_page_item > a,
.yc-nav .current-menu-ancestor > a {
  color: var(--yc-pink-deep);
  background: var(--yc-pink-soft);
}

/* 二级菜单 */
.yc-nav .sub-menu {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  min-width: 178px;
  flex-direction: column;
  align-items: stretch;
  gap: 2px;
  padding: 8px;
  background: var(--yc-surface);
  border: 1px solid var(--yc-border);
  border-radius: var(--yc-radius);
  box-shadow: var(--yc-shadow);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: all .2s var(--yc-ease);
  z-index: 95;
}
.yc-nav li:hover > .sub-menu,
.yc-nav li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.yc-nav .sub-menu a { border-radius: var(--yc-radius-sm); font-size: 14px; }
.yc-nav .sub-menu .sub-menu { top: -8px; left: calc(100% + 6px); }

/* 顶栏右侧操作区 */
.yc-actions { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }

.yc-icon-btn {
  width: 38px; height: 38px;
  display: grid; place-items: center;
  border: 0;
  border-radius: var(--yc-radius-pill);
  background: transparent;
  color: var(--yc-text-soft);
  cursor: pointer;
  transition: background .18s var(--yc-ease), color .18s var(--yc-ease), transform .18s var(--yc-ease);
}
.yc-icon-btn:hover { background: var(--yc-pink-soft); color: var(--yc-pink-deep); }
.yc-icon-btn:active { transform: scale(.94); }
.yc-icon-btn svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }

.yc-menu-toggle { display: none; }

/* 登录入口：比旁边几枚图标按钮稍重一点 —— 没登录时它是第一入口 */
.yc-action-login {
  background: var(--yc-pink-soft);
  color: var(--yc-pink-deep);
}
.yc-action-login:hover { background: var(--yc-pink); color: #fff; }

/* 已登录时的头像 + 账户菜单 */
.yc-user { position: relative; }

.yc-user__toggle {
  width: 38px; height: 38px;
  display: grid; place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  transition: background .18s var(--yc-ease), transform .18s var(--yc-ease);
}
.yc-user__toggle:hover { background: var(--yc-pink-soft); }
.yc-user__toggle:active { transform: scale(.94); }
.yc-user__avatar {
  display: block;
  width: 30px; height: 30px;
  border-radius: 50%;
}

.yc-user__menu {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 95;
  min-width: 182px;
  padding: 8px;
  background: var(--yc-surface);
  border: 1px solid var(--yc-border);
  border-radius: var(--yc-radius);
  box-shadow: var(--yc-shadow);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: all .2s var(--yc-ease);
}
/* :hover / :focus-within 两条是给没开 JS 的人兜底的 —— 只有 .is-open 的话，
   关掉 JS 就在页面上找不到退出登录的入口了 */
.yc-user:hover .yc-user__menu,
.yc-user:focus-within .yc-user__menu,
.yc-user__menu.is-open { opacity: 1; visibility: visible; transform: translateY(0); }

.yc-user__name {
  margin: 0 0 6px;
  padding: 6px 10px 10px;
  border-bottom: 1px solid var(--yc-border);
  line-height: 1.4;
}
.yc-user__name span { display: block; font-size: 14px; font-weight: 700; color: var(--yc-text); }
.yc-user__name small { display: block; font-size: 11.5px; color: var(--yc-text-faint); }

.yc-user__item {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 8px 10px;
  border-radius: var(--yc-radius-sm);
  font-size: 14px;
  color: var(--yc-text-body);
  transition: background .18s var(--yc-ease), color .18s var(--yc-ease);
}
.yc-user__item:hover { background: var(--yc-pink-soft); color: var(--yc-pink-deep); }
.yc-user__item svg {
  flex: none;
  width: 16px; height: 16px;
  fill: none; stroke: currentColor; stroke-width: 1.8;
  stroke-linecap: round; stroke-linejoin: round;
}
.yc-user__item--out { color: var(--yc-text-soft); }

/* 顶栏展开的搜索条 */
.yc-topsearch {
  overflow: hidden;
  max-height: 0;
  border-top: 1px solid transparent;
  transition: max-height .28s var(--yc-ease), border-color .28s var(--yc-ease);
}
.yc-topsearch.is-open { max-height: 92px; border-top-color: var(--yc-border); }
.yc-topsearch__inner { padding: 14px 0; }
.yc-topsearch .search-form { margin: 0; }

/* ==========================================================================
   4. 顶部横幅（背景图区）——这里是主题最「萌」的地方
   ========================================================================== */
.yc-hero {
  position: relative;
  min-height: var(--yc-hero-h);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  overflow: hidden;
  background:
    linear-gradient(135deg, #ffd9e8 0%, #e2d9ff 45%, #cfe9ff 100%);
  background-size: cover;
  background-position: center 30%;
  background-repeat: no-repeat;
  isolation: isolate;
}

.yc-hero__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
  z-index: -2;
  transition: transform 12s var(--yc-ease);
}
.yc-hero:hover .yc-hero__img { transform: scale(1.04); }

/* 遮罩：保证白色标题在任何背景图上都能读清 */
.yc-hero__veil {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(
    180deg,
    rgba(40, 24, 44, .30) 0%,
    rgba(40, 24, 44, .40) 45%,
    rgba(40, 24, 44, .62) 100%
  );
}
.yc-hero--light .yc-hero__veil {
  background: linear-gradient(180deg, rgba(255, 250, 253, .30) 0%, rgba(255, 245, 250, .05) 55%, rgba(60, 40, 55, .35) 100%);
}

.yc-hero__inner {
  position: relative;
  width: 100%;
  max-width: 860px;
  padding: 90px 22px 78px;
  color: #fff;
  text-shadow: 0 2px 18px rgba(0, 0, 0, .38);
}

.yc-hero__badge {
  display: inline-block;
  margin-bottom: 16px;
  padding: 5px 16px;
  border-radius: var(--yc-radius-pill);
  background: rgba(255, 255, 255, .2);
  border: 1px solid rgba(255, 255, 255, .45);
  backdrop-filter: blur(6px);
  font-size: 12.5px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #fff;
}

.yc-hero__title {
  margin: 0 0 14px;
  color: #fff;
  font-size: clamp(30px, 5.2vw, 52px);
  font-weight: 800;
  letter-spacing: .02em;
  line-height: 1.22;
}
.yc-hero__title a { color: #fff; }

.yc-hero__desc {
  margin: 0 auto 24px;
  max-width: 620px;
  font-size: 15.5px;
  line-height: 1.85;
  color: rgba(255, 255, 255, .93);
}

/* 横幅底部装饰曲线 */
.yc-hero__wave {
  position: absolute;
  left: 0; right: 0; bottom: -1px;
  width: 100%;
  height: 52px;
  z-index: 1;
  fill: var(--yc-bg);
  transition: fill .25s var(--yc-ease);
}

/* 飘落的樱花瓣（JS 注入 span） */
.yc-petals { position: absolute; inset: 0; pointer-events: none; overflow: hidden; z-index: 0; }
.yc-petals span {
  position: absolute;
  top: -24px;
  width: 12px; height: 12px;
  background: radial-gradient(circle at 30% 30%, #fff 0%, #ffc6dd 45%, #ff9dc0 100%);
  border-radius: 12px 2px 12px 2px;
  opacity: .75;
  animation: yc-fall linear infinite;
}
@keyframes yc-fall {
  0%   { transform: translate3d(0, -10px, 0) rotate(0deg); opacity: 0; }
  10%  { opacity: .8; }
  100% { transform: translate3d(60px, var(--yc-hero-h, 420px), 0) rotate(420deg); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .yc-petals { display: none; }
  html { scroll-behavior: auto; }
}

/* ==========================================================================
   5. 按钮
   ========================================================================== */
.yc-btn,
.yc-btn:visited {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 24px;
  border: 0;
  border-radius: var(--yc-radius-pill);
  font-size: 14.5px;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: transform .18s var(--yc-ease), box-shadow .18s var(--yc-ease), background .18s var(--yc-ease);
}

.yc-btn--primary {
  background: linear-gradient(135deg, var(--yc-pink) 0%, #ff9ec4 55%, var(--yc-purple) 140%);
  color: #fff;
  box-shadow: 0 8px 22px rgba(226, 97, 143, .32);
}
.yc-btn--primary:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 12px 28px rgba(226, 97, 143, .42); }

.yc-btn--ghost {
  background: rgba(255, 255, 255, .18);
  border: 1px solid rgba(255, 255, 255, .55);
  color: #fff;
  backdrop-filter: blur(6px);
}
.yc-btn--ghost:hover { background: rgba(255, 255, 255, .3); color: #fff; transform: translateY(-2px); }

.yc-btn--soft {
  background: var(--yc-pink-soft);
  color: var(--yc-pink-deep);
}
.yc-btn--soft:hover { background: var(--yc-pink); color: #fff; }

/* 内联 SVG 必须显式定尺寸，否则会按默认 300×150 撑开 */
.yc-btn svg { width: 17px; height: 17px; flex: none; }

/* ==========================================================================
   6. 区块标题
   ========================================================================== */
.yc-section-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}

.yc-section-head__title {
  position: relative;
  margin: 0;
  padding-left: 14px;
  font-size: 20px;
  font-weight: 800;
  letter-spacing: .01em;
}
.yc-section-head__title::before {
  content: "";
  position: absolute;
  left: 0; top: 50%;
  width: 5px; height: 20px;
  transform: translateY(-50%);
  border-radius: 3px;
  background: linear-gradient(180deg, var(--yc-pink), var(--yc-purple));
}

.yc-section-head__sub { font-size: 13px; color: var(--yc-text-faint); }

.yc-section-head__line {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, var(--yc-border-strong), transparent);
}

/* ==========================================================================
   7. 文章卡片列表（主体）
   ========================================================================== */
.yc-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 24px;
}

.yc-card {
  position: relative;
  display: flex;
  flex-direction: column;
  /* 描边用「双背景」做：里层把卡片底色铺满 padding-box，外层那条渐变正好露在 1px 边框上。
     border 必须写 transparent，否则会盖住底下那层渐变。 */
  border: 1px solid transparent;
  background:
    linear-gradient(var(--yc-surface), var(--yc-surface)) padding-box,
    linear-gradient(135deg, var(--yc-card-line-1), var(--yc-card-line-2) 52%, var(--yc-card-line-3)) border-box;
  border-radius: var(--yc-radius-lg);
  overflow: hidden;
  box-shadow: var(--yc-shadow-sm);
  transition: transform .26s var(--yc-ease), box-shadow .26s var(--yc-ease);
}

/* 顶端那条粉→紫→蓝的封边：整张卡片上唯一的彩色重点，悬停时加粗一点 */
.yc-card::before {
  content: '';
  position: absolute;
  left: 0; right: 0; top: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--yc-pink), var(--yc-purple), var(--yc-blue));
  z-index: 3;
  transition: height .26s var(--yc-ease);
}

/* 悬停时再叠一圈饱和描边。用 mask 抠出 1px 空心框，比直接换 border 颜色多一层透明度过渡，
   渐变之间才不会硬切（背景图本身没法平滑插值）。 */
.yc-card::after {
  content: '';
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  padding: 1px;
  border-radius: inherit;
  background: linear-gradient(135deg, var(--yc-pink), var(--yc-purple), var(--yc-blue));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
          mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
          mask-composite: exclude;
  opacity: 0;
  pointer-events: none;
  z-index: 4;
  transition: opacity .26s var(--yc-ease);
}

/* 悬停状态挂在不动的外层热区 .yc-card-item 上（见 inc/template-tags.php yc_card()）：
   卡片自己会上浮 5px，若 :hover 直接挂在卡片上，鼠标贴着下边缘时
   「抬起→出界→落回→再抬起」无限循环，就是卡片边缘一直抖的原因。 */
.yc-card-item:hover .yc-card {
  transform: translateY(-5px);
  box-shadow: var(--yc-shadow-lg);
}
.yc-card-item:hover .yc-card::before { height: 6px; }
.yc-card-item:hover .yc-card::after { opacity: 1; }

/* 卡片整体可点（跳转由 theme.js 接管）。缩略图/标题的 <a> 保留在 HTML 里给搜索引擎抓，
   但 pointer-events:none 让鼠标碰不到它们 —— 浏览器悬停时就不会在左下角显示链接地址了。
   分类角标、作者名这些真实小链接不受影响，悬停仍正常。 */
.yc-card { cursor: pointer; }
.yc-card .yc-card__link { pointer-events: none; }

/* 缩略图 */
.yc-card__thumb {
  position: relative;
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  /* 这层渐变就是「没设特色图」时的占位底色（另两种配色见下面 :nth-child 两条） */
  background: linear-gradient(135deg, var(--yc-pink-soft), var(--yc-blue-soft));
}
.yc-card__thumb img {
  width: 100%; height: 100%;
  object-fit: contain;
  display: block;
  transition: transform .5s var(--yc-ease);
}
.yc-card-item:hover .yc-card__thumb img { transform: scale(1.06); }

/* 没设特色图时的占位：2.3.10 起默认输出 banner.jpg 真图（见 inc/template-tags.php 的
   yc_placeholder_image()），这层渐变退为兜底 —— 只有把过滤器过滤成空字符串才露出来。
   三篇轮一次色，列表不至于一片同色；真有特色图的卡片会被 <img> 盖住，看不出来。
   两套配色都走变量，暗色模式才能一起压暗。 */
.yc-card-item:nth-child(3n+2) .yc-card__thumb { background: linear-gradient(135deg, var(--yc-ph-b1), var(--yc-ph-b2)); }
.yc-card-item:nth-child(3n+3) .yc-card__thumb { background: linear-gradient(135deg, var(--yc-ph-c1), var(--yc-ph-c2)); }

/* 占位真图 <img>（默认 banner.jpg，也可用 `yc_placeholder_image` 过滤器换成自定义图）：同样 16:9，轻度放大即可 */
.yc-card__thumb .yc-card__noimg { transform: scale(1); }
.yc-card-item:hover .yc-card__thumb .yc-card__noimg { transform: scale(1.04); }

/* 外链特色图（inc/thumb-url.php 的 meta box 填的 URL）：原图直出、不预裁剪，
   用 contain 完整显示整张图，比例对不上的地方露出卡片自带的渐变底色；
   悬停不放大 —— 放大会重新裁掉边缘，和「看全图」的初衷矛盾。 */
.yc-card__thumb .yc-card__extimg { object-fit: contain; transform: none; }
.yc-card-item:hover .yc-card__thumb .yc-card__extimg { transform: none; }

/* 宽卡片（一行一篇）+ 外链图：缩略图框默认会拉伸到和右侧文字等高，
   contain 模式的图只占中间，上下就空出大片渐变底。
   让框改为跟随图片自身高度并垂直居中，图多高框就多高，不再留空。
   （用三段类名提高优先级，确保压过下方的 .yc-card--wide .yc-card__thumb
   里 46% 宽 / min-height:260px 那条 —— 那条在文件更靠后的位置，同等
   优先级会把它盖回去，2.3.17 就是栽在这上面：图片高度不足 260px 时
   底下仍空出一条。） */
.yc-card--wide .yc-card__thumb.yc-card__thumb--ext {
  align-self: center;
  min-height: 0;
  aspect-ratio: auto;
}
.yc-card--wide .yc-card__thumb.yc-card__thumb--ext .yc-card__extimg { height: auto; }

/* 外链图加载失败（标记由 inc/template-tags.php 的 onerror 打上）：
   onerror 已经把 src 换成主题占位图，所以访客看到的仍是一张正常卡片；
   这里只在管理员登录时叠一个角标，方便逐篇找出填坏了的链接，改回媒体库的图。
   访客永远看不到这个角标 —— body 上没有 .yc-is-admin 时整条规则不生效。 */
.yc-is-admin .yc-card__thumb.yc-ext-error::after {
  content: "外链失效";
  position: absolute;
  z-index: 3;
  left: 10px;
  bottom: 10px;
  padding: 2px 10px;
  border-radius: 999px;
  background: rgba(229, 72, 77, .92);
  color: #fff;
  font-size: 12px;
  line-height: 1.7;
  letter-spacing: .02em;
  pointer-events: none;
}

/* 分类角标 */
.yc-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 11px;
  border-radius: var(--yc-radius-pill);
  background: var(--yc-pink-soft);
  color: var(--yc-pink-deep);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .02em;
  line-height: 1.9;
}
.yc-chip:hover { background: var(--yc-pink); color: #fff; }

.yc-card__chip {
  position: absolute;
  left: 12px;
  top: 12px;
  background: rgba(255, 255, 255, .92);
  backdrop-filter: blur(6px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, .12);
  z-index: 2;
}
.yc-card__chip:hover { background: var(--yc-pink); }

/* 卡片正文 */
.yc-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 18px 20px 20px;
}

.yc-card__title {
  margin: 0 0 10px;
  font-size: 17.5px;
  font-weight: 700;
  line-height: 1.5;
}
.yc-card__title a { color: var(--yc-text); }
.yc-card__title a:hover { color: var(--yc-pink-deep); }

.yc-card__excerpt {
  margin: 0 0 16px;
  font-size: 14px;
  line-height: 1.85;
  color: var(--yc-text-soft);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.yc-card__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px dashed var(--yc-border);
  font-size: 12.5px;
  color: var(--yc-text-faint);
}
.yc-card__meta span { display: inline-flex; align-items: center; gap: 5px; }
.yc-card__meta svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; opacity: .9; }

/* 每行几篇由后台「列表每行文章数」决定；1 篇时卡片用横向长卡 */
.yc-card-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.yc-card-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1080px) {
  .yc-card-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* 外层热区盒子：撑满网格单元，卡片在里面填满（上浮时也不改变热区大小） */
.yc-card-item { display: flex; }
.yc-card-item .yc-card { flex: 1; }

/* 横向长卡片（一行一篇用）：图左文右。grid-column 挪到外层热区上 */
.yc-card-item--wide { grid-column: 1 / -1; }
.yc-card--wide { flex-direction: row; }

/* 右侧工具栏关闭后列表占满 1200px，横卡别跟着拉满 —— 限宽到有侧栏时的正文宽度（约 852px）并居中，
   2 / 3 列网格不受影响，仍然满宽。
   注意必须带 width:100%：网格项设 auto 外边距会失去拉伸、按内容收缩，卡片会缩成一小条 */
.yc-layout--full .yc-card-item--wide { width: 100%; max-width: 860px; margin-left: auto; margin-right: auto; }
.yc-card--wide .yc-card__thumb { width: 46%; aspect-ratio: auto; min-height: 260px; }
.yc-card--wide .yc-card__body { width: 54%; padding: 30px 32px; justify-content: center; }
.yc-card--wide .yc-card__title { font-size: 23px; }
.yc-card--wide .yc-card__excerpt { -webkit-line-clamp: 4; font-size: 14.5px; }
@media (max-width: 720px) {
  .yc-card--wide { flex-direction: column; }
  .yc-card--wide .yc-card__thumb,
  .yc-card--wide .yc-card__body { width: 100%; min-height: 0; padding: 18px 20px 20px; }
  .yc-card--wide .yc-card__thumb { aspect-ratio: 16 / 9; }
  .yc-card--wide .yc-card__title { font-size: 19px; }
}

/* 卡片有无特色图都保持同一套版式 */

/* ==========================================================================
   8. 分页
   ========================================================================== */
.yc-pagination { margin-top: 36px; }
.yc-pagination .navigation { margin: 0; }
.yc-pagination .screen-reader-text { display: none; }

.yc-pagination .nav-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 8px;
}

.yc-pagination .page-numbers {
  display: inline-grid;
  place-items: center;
  min-width: 40px;
  height: 40px;
  padding: 0 13px;
  border-radius: var(--yc-radius-pill);
  background: var(--yc-surface);
  border: 1px solid var(--yc-border);
  color: var(--yc-text-soft);
  font-size: 14px;
  font-weight: 600;
  transition: all .18s var(--yc-ease);
}
.yc-pagination .page-numbers:hover { border-color: var(--yc-pink); color: var(--yc-pink-deep); transform: translateY(-2px); }
.yc-pagination .page-numbers.current {
  background: linear-gradient(135deg, var(--yc-pink), var(--yc-purple));
  border-color: transparent;
  color: #fff;
  box-shadow: 0 6px 18px rgba(226, 97, 143, .3);
}
.yc-pagination .page-numbers.dots { background: transparent; border-color: transparent; }

/* ==========================================================================
   9. 右侧工具栏（侧边栏）
   ========================================================================== */
.yc-sidebar { min-width: 0; }

.yc-sidebar__sticky {
  position: sticky;
  top: 84px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.widget {
  background: var(--yc-surface);
  border: 1px solid var(--yc-border);
  border-radius: var(--yc-radius);
  padding: 20px;
  box-shadow: var(--yc-shadow-sm);
}

.widget-title,
.widget .wp-block-heading {
  position: relative;
  margin: 0 0 16px;
  padding-bottom: 12px;
  font-size: 15.5px;
  font-weight: 800;
  color: var(--yc-text);
  border-bottom: 1px solid var(--yc-border);
}
.widget-title::after {
  content: "";
  position: absolute;
  left: 0; bottom: -1px;
  width: 42px; height: 3px;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--yc-pink), var(--yc-purple));
}

.widget ul { list-style: none; margin: 0; padding: 0; }
.widget ul li {
  position: relative;
  padding: 9px 0 9px 18px;
  border-bottom: 1px dashed var(--yc-border);
  font-size: 14px;
  line-height: 1.7;
}
.widget ul li:last-child { border-bottom: 0; padding-bottom: 0; }
.widget ul li::before {
  content: "";
  position: absolute;
  left: 2px; top: 18px;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--yc-pink);
  opacity: .55;
}
.widget ul li a { color: var(--yc-text-body); }
.widget ul li a:hover { color: var(--yc-pink-deep); }
.widget ul ul { margin-top: 8px; }
.widget ul ul li { border-bottom: 0; padding-top: 4px; padding-bottom: 4px; }
.widget select {
  width: 100%;
  padding: 9px 12px;
  border: 1px solid var(--yc-border-strong);
  border-radius: var(--yc-radius-sm);
  background: var(--yc-surface-2);
}

/* 标签云 */
.widget .tagcloud { display: flex; flex-wrap: wrap; gap: 8px; }
.widget .tagcloud a {
  display: inline-block;
  padding: 4px 12px;
  border-radius: var(--yc-radius-pill);
  background: var(--yc-surface-2);
  border: 1px solid var(--yc-border);
  color: var(--yc-text-soft);
  font-size: 12.5px !important;
  transition: all .18s var(--yc-ease);
}
.widget .tagcloud a:hover {
  background: var(--yc-pink-soft);
  border-color: var(--yc-pink-soft);
  color: var(--yc-pink-deep);
  transform: translateY(-2px);
}

/* 搜索表单 */
.search-form { display: flex; gap: 8px; }
.search-form label { flex: 1; margin: 0; }
.search-form .search-field {
  width: 100%;
  padding: 10px 16px;
  border: 1px solid var(--yc-border-strong);
  border-radius: var(--yc-radius-pill);
  background: var(--yc-surface-2);
  font-size: 14px;
  transition: all .18s var(--yc-ease);
}
.search-form .search-field::placeholder { color: var(--yc-text-faint); }
.search-form .search-field:focus {
  outline: none;
  background: var(--yc-surface);
  border-color: var(--yc-pink);
  box-shadow: 0 0 0 3px var(--yc-pink-soft);
}
.search-form .search-submit {
  flex-shrink: 0;
  padding: 0 20px;
  border: 0;
  border-radius: var(--yc-radius-pill);
  background: linear-gradient(135deg, var(--yc-pink), var(--yc-purple));
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: transform .18s var(--yc-ease), box-shadow .18s var(--yc-ease);
}
.search-form .search-submit:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(226, 97, 143, .32); }

/* 日历（WordPress 自带 get_calendar() 的输出） */
.widget .calendar_wrap { font-size: 12.5px; }
.widget #wp-calendar {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.widget #wp-calendar caption {
  padding: 0 0 12px;
  color: var(--yc-text);
  font-size: 13.5px;
  font-weight: 700;
  text-align: center;
  letter-spacing: .3px;
}
.widget #wp-calendar th,
.widget #wp-calendar td {
  padding: 7px 0;
  border: 0;
  text-align: center;
  font-size: 12.5px;
  color: var(--yc-text-body);
}
.widget #wp-calendar thead th {
  padding-bottom: 9px;
  border-bottom: 1px solid var(--yc-border);
  color: var(--yc-text-faint);
  font-weight: 600;
}
.widget #wp-calendar tbody td.pad { opacity: .35; }
/* 日期全是纯数字（主题不提供日期归档页），所以整张月历只有「今天」有底色 */
.widget #wp-calendar #today {
  border-radius: 8px;
  background: linear-gradient(135deg, var(--yc-pink), var(--yc-purple));
  color: #fff;
  font-weight: 700;
}

/* 博主名片（自定义 HTML 组件常用） */
.yc-profile {
  text-align: center;
  background:
    radial-gradient(120% 80% at 50% 0%, var(--yc-pink-mist) 0%, var(--yc-surface) 62%);
}
.yc-profile__avatar {
  width: 76px; height: 76px;
  margin: 4px auto 12px;
  border-radius: 50%;
  padding: 3px;
  background: linear-gradient(135deg, var(--yc-pink), var(--yc-purple));
}
.yc-profile__avatar img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block; }
.yc-profile__name { margin: 0 0 6px; font-size: 15.5px; }
.yc-profile__bio { margin: 0 0 14px; font-size: 13px; line-height: 1.8; color: var(--yc-text-soft); }
.yc-profile__stats { display: flex; justify-content: center; gap: 22px; font-size: 12px; color: var(--yc-text-faint); }
.yc-profile__stats b { display: block; font-size: 17px; color: var(--yc-pink-deep); }

/* 侧栏文章条目（带小图） */
.yc-mini-list { display: flex; flex-direction: column; gap: 14px; }
.yc-mini {
  display: flex;
  gap: 11px;
  align-items: flex-start;
  padding: 0 !important;
  border: 0 !important;
}
.yc-mini::before { display: none !important; }
.yc-mini__thumb {
  flex-shrink: 0;
  width: 62px; height: 62px;
  border-radius: var(--yc-radius-sm);
  overflow: hidden;
  background: var(--yc-surface-2);
}
.yc-mini__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.yc-mini__body { min-width: 0; }
.yc-mini__title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: 13.5px;
  font-weight: 600;
  line-height: 1.6;
  color: var(--yc-text-body);
}
.yc-mini__title:hover { color: var(--yc-pink-deep); }
.yc-mini__date { font-size: 11.5px; color: var(--yc-text-faint); }

/* ==========================================================================
   10. 文章页（单篇）
   配色原则：横幅之后一切从简 —— 白纸、深灰字、一抹淡粉点缀。
   ========================================================================== */
.yc-article {
  background: var(--yc-surface);
  border: 1px solid var(--yc-border);
  border-radius: var(--yc-radius-lg);
  box-shadow: var(--yc-shadow-sm);
  overflow: hidden;
}

.yc-article__cover {
  position: relative;
  background: var(--yc-surface-2);
}
.yc-article__cover img { width: 100%; max-height: 420px; object-fit: contain; display: block; }
.yc-article__cover-caption {
  position: absolute;
  right: 14px; bottom: 10px;
  padding: 3px 10px;
  border-radius: var(--yc-radius-pill);
  background: rgba(0, 0, 0, .45);
  color: rgba(255, 255, 255, .9);
  font-size: 11.5px;
}

/* 头部、正文、底栏共用同一条中轴线，避免标题和正文左右错位 */
.yc-article__head {
  max-width: 46rem;
  margin: 0 auto;
  padding: 34px 40px 0;
}

.yc-article__title {
  margin: 10px 0 16px;
  font-size: clamp(23px, 3.2vw, 33px);
  font-weight: 800;
  line-height: 1.35;
  letter-spacing: .01em;
}

.yc-article__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--yc-border);
  font-size: 13px;
  color: var(--yc-text-faint);
}
.yc-article__meta span { display: inline-flex; align-items: center; gap: 6px; }
.yc-article__meta svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.yc-article__meta a { color: var(--yc-text-soft); }
.yc-article__meta a:hover { color: var(--yc-pink-deep); }

/* —— 正文排版：全站最需要克制的部分 —— */
/* 下面只保留骨架：宽度、居中、内边距、换行 —— 这些是版式骨架，
   跟着排版一起关掉会让文章卡片塌掉、文字贴边，所以永远留在这里。
   真正的排版规则（标题装饰、链接色、列表、引用、代码块、图片、表格、分页按钮）
   全部抽到 assets/css/content.css，由「YC 主题 → 阅读体验 → 正文排版」开关控制
   是否加载。关掉之后这份文件不再输出，正文回到 WordPress 自带的外观。 */
.yc-article__content {
  max-width: 46rem;
  margin: 0 auto;
  padding: 30px 40px 40px;
  word-wrap: break-word;
  overflow-wrap: break-word;
}
.yc-page-card .yc-article__content { padding-top: 26px; }




/* 正文链接：下划线为主，颜色为辅，绝不刺眼 */







/* 正文内小提示块（沿用 WP 的 align / 引用变体） */

/* 长文分页（<!--nextpage-->） */

/* 文章底部：标签 + 分享 */
.yc-article__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
  max-width: 46rem;
  margin: 0 auto;
  padding: 22px 40px 30px;
  border-top: 1px dashed var(--yc-border);
}
.yc-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.yc-tags a {
  padding: 3px 12px;
  border-radius: var(--yc-radius-pill);
  background: var(--yc-surface-2);
  border: 1px solid var(--yc-border);
  color: var(--yc-text-soft);
  font-size: 12.5px;
}
.yc-tags a:hover { background: var(--yc-pink-soft); border-color: var(--yc-pink-soft); color: var(--yc-pink-deep); }

/* 页面（固定页面）复用卡片外壳，去掉花哨元素 */
.yc-page-card { padding: 40px 0; }
.yc-page-card .yc-article__head { padding-bottom: 0; }

/* ==========================================================================
   11. 评论
   ========================================================================== */
.yc-comments {
  margin-top: 34px;
  padding: 30px 34px;
  background: var(--yc-surface);
  border: 1px solid var(--yc-border);
  border-radius: var(--yc-radius-lg);
  box-shadow: var(--yc-shadow-sm);
}

.yc-comments__title {
  margin: 0 0 22px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--yc-border);
  font-size: 18px;
}
.yc-comments__title span { color: var(--yc-pink-deep); }

.comment-list { list-style: none; margin: 0; padding: 0; }
.comment-list ol.children { list-style: none; margin: 18px 0 0; padding-left: 26px; }
.comment-body {
  position: relative;
  padding: 18px 0;
  border-bottom: 1px dashed var(--yc-border);
}
.comment-list > li:last-child > .comment-body { border-bottom: 0; }

.comment-author {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14.5px;
  font-weight: 700;
  color: var(--yc-text);
}
.comment-author .avatar {
  width: 40px; height: 40px;
  border-radius: 50%;
  border: 2px solid var(--yc-pink-soft);
  display: block;
}
.comment-author .says { display: none; }
.comment-metadata { margin: 6px 0 10px 50px; font-size: 12px; color: var(--yc-text-faint); }
.comment-metadata a { color: var(--yc-text-faint); }
.comment-content { margin-left: 50px; font-size: 14.5px; line-height: 1.9; color: var(--yc-text-body); }
.comment-content p:last-child { margin-bottom: 0; }
.comment-content img { border-radius: var(--yc-radius-sm); }
.reply { margin: 8px 0 0 50px; }
.comment-reply-link {
  display: inline-block;
  padding: 3px 13px;
  border-radius: var(--yc-radius-pill);
  background: var(--yc-surface-2);
  border: 1px solid var(--yc-border);
  font-size: 12px;
  color: var(--yc-text-soft);
}
.comment-reply-link:hover { background: var(--yc-pink-soft); border-color: var(--yc-pink-soft); color: var(--yc-pink-deep); }

.comment-respond { margin-top: 26px; }
.comment-reply-title { font-size: 16px; }
.comment-reply-title small { font-size: 12.5px; font-weight: 500; }

/* 未登录访客看到的评论区：一张登录邀请，替代整张表单
   （「YC 主题 → 评论 → 仅允许登录用户评论」开启时；关掉它就是普通的游客表单） */
.yc-login-note {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 18px 20px;
  border: 1px solid var(--yc-border);
  border-radius: var(--yc-radius);
  background: linear-gradient(135deg, var(--yc-pink-mist), var(--yc-blue-soft));
}
.yc-login-note__mark {
  flex: none;
  display: grid;
  place-items: center;
  width: 42px; height: 42px;
  border-radius: 14px;
  background: var(--yc-surface);
  color: var(--yc-pink-deep);
  box-shadow: var(--yc-shadow-sm);
}
.yc-login-note__mark svg { display: block; width: 20px; height: 20px; }
.yc-login-note__text { flex: 1; margin: 0; font-size: 14px; line-height: 1.7; color: var(--yc-text-soft); }
.yc-login-note__btn {
  flex: none;
  padding: 10px 21px;
  border-radius: var(--yc-radius-pill);
  background: linear-gradient(135deg, var(--yc-pink), var(--yc-pink-deep));
  color: #fff;
  font-size: 13.5px;
  font-weight: 600;
  text-decoration: none;
  box-shadow: 0 8px 20px rgba(226, 97, 143, .28);
  transition: transform .3s var(--yc-ease), box-shadow .3s var(--yc-ease);
}
.yc-login-note__btn:hover { transform: translateY(-2px); color: #fff; box-shadow: 0 12px 26px rgba(226, 97, 143, .34); }

/* 昵称/邮箱/站点三列并排，内容与按钮占满整行 */
.comment-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.comment-form p { margin: 0; }
.comment-form-comment,
.comment-form-cookies-consent,
.comment-notes,
.logged-in-as,
.comment-form .form-submit,
.comment-form .comment-form-title { grid-column: 1 / -1; }
.comment-form label { display: block; margin-bottom: 6px; font-size: 13px; color: var(--yc-text-soft); }
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
  width: 100%;
  padding: 11px 15px;
  border: 1px solid var(--yc-border-strong);
  border-radius: var(--yc-radius-sm);
  background: var(--yc-surface-2);
  font-size: 14px;
  line-height: 1.7;
  transition: all .18s var(--yc-ease);
}
.comment-form textarea { min-height: 130px; resize: vertical; }
.comment-form input:focus,
.comment-form textarea:focus {
  outline: none;
  background: var(--yc-surface);
  border-color: var(--yc-pink);
  box-shadow: 0 0 0 3px var(--yc-pink-soft);
}
.comment-form .form-submit { margin: 4px 0 0; }
.comment-form input[type="submit"] {
  padding: 11px 30px;
  border: 0;
  border-radius: var(--yc-radius-pill);
  background: linear-gradient(135deg, var(--yc-pink), var(--yc-purple));
  color: #fff;
  font-size: 14.5px;
  font-weight: 600;
  cursor: pointer;
  transition: transform .18s var(--yc-ease), box-shadow .18s var(--yc-ease);
}
.comment-form input[type="submit"]:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(226, 97, 143, .32); }
.comment-form-cookies-consent { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--yc-text-soft); }
.comment-form-cookies-consent label { margin: 0; }
.comment-notes { font-size: 13px; color: var(--yc-text-faint); }
.comment-navigation { display: flex; justify-content: space-between; margin: 18px 0; font-size: 13.5px; }

/* ==========================================================================
   12. 登录 / 注册页
   一张居中的卡片，顶上一圈渐变封边。表单里的每个控件都带图标，
   密码框右侧有「看一眼」按钮。颜色全部走变量，浅色 / 暗色各一套。
   ========================================================================== */

/* 登录页是单栏：侧栏位置留白，卡片居中 */
.yc-layout--auth { grid-template-columns: minmax(0, 1fr); }
.yc-auth,
.yc-auth__intro {
  width: 100%;
  max-width: 452px;
  margin-left: auto;
  margin-right: auto;
}

/* 页面正文（可选）当欢迎语显示在表单上方 */
.yc-auth__intro {
  margin-bottom: 18px;
  text-align: center;
  font-size: 14.5px;
  line-height: 1.9;
  color: var(--yc-text-soft);
}

/* ---- 页签：滑块式，胶囊里嵌一颗活动的白胶囊 ---- */
.yc-auth__tabs {
  display: flex;
  gap: 4px;
  margin-bottom: 16px;
  padding: 5px;
  background: var(--yc-surface-2);
  border: 1px solid var(--yc-border);
  border-radius: var(--yc-radius-pill);
}
.yc-auth__tab {
  flex: 1;
  padding: 9px 14px;
  border-radius: var(--yc-radius-pill);
  text-align: center;
  font-size: 14px;
  font-weight: 600;
  color: var(--yc-text-soft);
  transition: all .2s var(--yc-ease);
}
.yc-auth__tab:hover { color: var(--yc-pink-deep); }
.yc-auth__tab.is-active {
  background: var(--yc-surface);
  color: var(--yc-pink-deep);
  box-shadow: var(--yc-shadow-sm);
}

/* ---- 卡片 ---- */
.yc-auth__card {
  position: relative;
  overflow: hidden;
  background: var(--yc-surface);
  border-radius: var(--yc-radius-lg);
  box-shadow: var(--yc-shadow);
}
/* 顶部封边：和文章卡片同一套语言，只是这里允许亮一点 */
.yc-auth__card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: linear-gradient(90deg, var(--yc-pink), var(--yc-purple), var(--yc-blue));
}

.yc-auth__head {
  padding: 34px 32px 24px;
  text-align: center;
  background: linear-gradient(135deg, var(--yc-pink-mist), var(--yc-blue-soft));
}
.yc-auth__badge {
  display: inline-grid;
  place-items: center;
  width: 54px; height: 54px;
  margin-bottom: 14px;
  border-radius: 18px;
  background: var(--yc-surface);
  color: var(--yc-pink-deep);
  box-shadow: var(--yc-shadow-sm);
}
/* 尺寸必须写死：主题那条 svg { max-width:100%; height:auto } 会把没有尺寸的
   内联 SVG 撑成一整块（见过 300×300 的黑方块），这里逐个兜住 */
.yc-auth__badge svg {
  width: 26px; height: 26px;
  fill: none; stroke: currentColor; stroke-width: 1.7;
  stroke-linecap: round; stroke-linejoin: round;
}
.yc-auth__title {
  margin: 0;
  font-family: var(--yc-font-title);
  font-size: 22px;
  font-weight: 800;
  color: var(--yc-text);
}
.yc-auth__sub { margin: 8px 0 0; font-size: 13.5px; color: var(--yc-text-soft); }

/* ---- 表单 ---- */
.yc-auth__form { padding: 26px 32px 30px; }

.yc-auth__field { margin: 0 0 16px; }
.yc-auth__field > label {
  display: block;
  margin-bottom: 7px;
  font-size: 13px;
  font-weight: 600;
  color: var(--yc-text-soft);
}

.yc-auth__input {
  display: flex;
  align-items: center;
  border: 1px solid var(--yc-border-strong);
  border-radius: var(--yc-radius-sm);
  background: var(--yc-surface-2);
  transition: background .18s var(--yc-ease), border-color .18s var(--yc-ease), box-shadow .18s var(--yc-ease);
}
.yc-auth__input:focus-within {
  background: var(--yc-surface);
  border-color: var(--yc-pink);
  box-shadow: 0 0 0 3px var(--yc-pink-soft);
}
.yc-auth__icon {
  flex: none;
  display: grid;
  place-items: center;
  width: 42px;
  color: var(--yc-text-faint);
  transition: color .18s var(--yc-ease);
}
.yc-auth__icon svg {
  width: 17px; height: 17px;
  fill: none; stroke: currentColor; stroke-width: 1.8;
  stroke-linecap: round; stroke-linejoin: round;
}
.yc-auth__input:focus-within .yc-auth__icon { color: var(--yc-pink-deep); }

.yc-auth__input input {
  flex: 1;
  min-width: 0;
  padding: 11px 14px 11px 0;
  border: 0;
  background: none;
  font-size: 14.5px;
  color: var(--yc-text);
  outline: none;
}
/* 密码框里的字距稍微放开一点，方便核对；留空时不影响 placeholder */
.yc-auth__input input[type="password"] { letter-spacing: .04em; }

.yc-auth__peek {
  flex: none;
  display: grid;
  place-items: center;
  width: 40px; height: 40px;
  margin-right: 2px;
  border: 0;
  border-radius: var(--yc-radius-sm);
  background: none;
  color: var(--yc-text-faint);
  cursor: pointer;
  transition: color .18s var(--yc-ease), background .18s var(--yc-ease);
}
.yc-auth__peek:hover { color: var(--yc-pink-deep); background: var(--yc-pink-soft); }
.yc-auth__peek svg {
  width: 17px; height: 17px;
  fill: none; stroke: currentColor; stroke-width: 1.8;
  stroke-linecap: round; stroke-linejoin: round;
}

.yc-auth__hint { display: block; margin-top: 6px; font-size: 12px; color: var(--yc-text-faint); }

.yc-auth__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 20px;
}
.yc-auth__check {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  color: var(--yc-text-soft);
  cursor: pointer;
}
.yc-auth__check input {
  width: 15px; height: 15px;
  margin: 0;
  accent-color: var(--yc-pink-deep);
}
.yc-auth__link { font-size: 13px; color: var(--yc-pink-deep); }
.yc-auth__link:hover { color: var(--yc-link-hover); text-decoration: underline; }

.yc-auth__submit {
  display: block;
  width: 100%;
  padding: 12px 22px;
  border: 0;
  border-radius: var(--yc-radius-pill);
  background: linear-gradient(135deg, var(--yc-pink), var(--yc-purple));
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 10px 24px rgba(226, 97, 143, .28);
  transition: transform .2s var(--yc-ease), box-shadow .2s var(--yc-ease);
}
.yc-auth__submit:hover {
  transform: translateY(-2px);
  color: #fff;
  box-shadow: 0 14px 30px rgba(226, 97, 143, .36);
}

.yc-auth__back { margin: 14px 0 0; text-align: center; }
.yc-auth__foot { margin: 16px 0 0; text-align: center; font-size: 12.5px; color: var(--yc-text-faint); }

/* 蜜罐：挪到视口外。不能写 display:none —— 那样机器人也能看出这栏是隐藏的 */
.yc-auth__trap {
  position: absolute;
  left: -9999px;
  width: 1px; height: 1px;
  overflow: hidden;
}

/* ---- 提示条 ---- */
.yc-auth__notices { margin-bottom: 16px; }
.yc-auth__notice {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0 0 8px;
  padding: 10px 14px;
  border-radius: var(--yc-radius-sm);
  font-size: 13px;
  line-height: 1.7;
}
.yc-auth__notice:last-child { margin-bottom: 0; }
.yc-auth__notice > span { flex: none; font-weight: 700; }
.yc-auth__notice--error {
  background: var(--yc-danger-bg);
  border: 1px solid var(--yc-danger-line);
  color: var(--yc-danger-text);
}
.yc-auth__notice--done {
  background: var(--yc-blue-soft);
  border: 1px solid var(--yc-border);
  color: var(--yc-text-body);
}

/* ---- 已登录时的卡片 ---- */
.yc-auth__done { padding: 0 32px; text-align: center; }
.yc-auth__avatar {
  width: 72px; height: 72px;
  border-radius: 50%;
  border: 3px solid var(--yc-pink-soft);
}
.yc-auth__done-text { margin: 12px 0 0; font-size: 13.5px; color: var(--yc-text-soft); }

.yc-auth__actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 22px 32px 32px;
}
.yc-auth__ghost {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 18px;
  border: 1px solid var(--yc-border);
  border-radius: var(--yc-radius-pill);
  background: var(--yc-surface);
  color: var(--yc-text-soft);
  font-size: 13.5px;
  font-weight: 600;
  text-decoration: none;
  transition: all .2s var(--yc-ease);
}
.yc-auth__ghost:hover {
  border-color: var(--yc-pink-soft);
  background: var(--yc-pink-soft);
  color: var(--yc-pink-deep);
}
.yc-auth__ghost svg {
  flex: none;
  width: 16px; height: 16px;
  fill: none; stroke: currentColor; stroke-width: 1.8;
  stroke-linecap: round; stroke-linejoin: round;
}
/* 「换个验证码」这类次要按钮：借用 .yc-auth__ghost 的壳，补齐 <button> 缺的那点 */
button.yc-auth__ghost {
  width: 100%;
  margin-top: 10px;
  padding: 11px 18px;
  font-family: inherit;
  cursor: pointer;
}
.yc-auth__field input[maxlength="6"] { letter-spacing: .3em; }

/* ==========================================================================
   13. 页脚
   ========================================================================== */
/* 页脚：只有拖了「页脚第 1~3 栏」小工具时才输出，没配置就整块不存在 */
.yc-footer {
  margin-top: 34px;
  padding: 46px 0 34px;
  background: var(--yc-surface);
  border-top: 1px solid var(--yc-border);
}
.yc-footer__widgets {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 26px;
}
.yc-footer .widget {
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
}
.yc-footer .widget-title { font-size: 15px; }

/* 回到顶部 */
.yc-totop {
  position: fixed;
  right: 24px;
  bottom: 26px;
  z-index: 80;
  width: 46px; height: 46px;
  display: grid; place-items: center;
  border: 0;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--yc-pink), var(--yc-purple));
  color: #fff;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  box-shadow: 0 10px 24px rgba(226, 97, 143, .35);
  transition: all .26s var(--yc-ease);
}
.yc-totop.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.yc-totop:hover { transform: translateY(-3px); }
.yc-totop svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }

/* ==========================================================================
   14. 空状态 / 404
   ========================================================================== */
.yc-empty {
  padding: 64px 26px;
  text-align: center;
  background: var(--yc-surface);
  border: 1px solid var(--yc-border);
  border-radius: var(--yc-radius-lg);
  box-shadow: var(--yc-shadow-sm);
}
.yc-empty__icon { font-size: 52px; line-height: 1; margin-bottom: 14px; }
.yc-empty__title { margin: 0 0 8px; font-size: 20px; }
.yc-empty__text { margin: 0 auto 22px; max-width: 440px; font-size: 14.5px; color: var(--yc-text-soft); }

.yc-404__code {
  font-family: var(--yc-font-title);
  font-size: clamp(64px, 16vw, 110px);
  font-weight: 800;
  line-height: 1;
  margin-bottom: 6px;
  background: linear-gradient(135deg, var(--yc-pink), var(--yc-purple));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* ==========================================================================
   15. 通用工具类 & WordPress 核心类
   ========================================================================== */
.alignleft { float: left; margin: .4em 1.6em 1em 0; }
.alignright { float: right; margin: .4em 0 1em 1.6em; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.alignwide { margin-left: -30px; margin-right: -30px; max-width: none; }
.alignfull { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); max-width: 100vw; width: 100vw; }

.wp-caption { max-width: 100%; }
.wp-caption-text,
.gallery-caption { font-size: 13px; color: var(--yc-text-faint); text-align: center; }
.sticky .yc-card__title a::after { content: " 📌"; }

.bypostauthor > .comment-body .comment-author { color: var(--yc-pink-deep); }

.wp-block-image img { border-radius: var(--yc-radius); }
.wp-block-button__link {
  border-radius: var(--yc-radius-pill) !important;
  background: linear-gradient(135deg, var(--yc-pink), var(--yc-purple)) !important;
  color: #fff !important;
  font-size: 14.5px;
  font-weight: 600;
  padding: 11px 26px;
}
.wp-block-separator { border-color: var(--yc-border); }
.wp-block-pullquote { border-top: 3px solid var(--yc-pink); border-bottom: 3px solid var(--yc-pink); }
.wp-block-cover { border-radius: var(--yc-radius); overflow: hidden; }

.screen-reader-shortcut { display: none; }

/* ==========================================================================
   16. 头像
   ========================================================================== */

/*
 * WordPress 的头像默认来自 Gravatar（secure.gravatar.com），那个域名在国内
 * 基本连不上，浏览器加载失败后就只剩一张裂图。主题默认改成「本地首字头像」：
 * 一枚圆形底色 + 显示名首字，纯 DOM、不联网，也就不可能裂图。
 *
 * 尺寸一律在这里定死。各处请求的尺寸本来就不同（顶栏 30 / 评论 40 /
 * 作者名片 58 / 登录页 72），所以 span 上不带内联尺寸 —— 带了反而会盖掉
 * 下面这些规则。JS 里那个 onerror 兜底的远端图不算在内，它是 <img>。
 */
.yc-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--yc-avatar-bg, var(--yc-pink));
  color: #fff;
  font-weight: 700;
  line-height: 1;
  user-select: none;
  -webkit-user-select: none;
}

/* 顶栏账号按钮 —— 跟 .yc-user__avatar 同一个尺寸 */
.yc-user__avatar.yc-avatar {
  display: inline-flex;
  width: 30px; height: 30px;
  font-size: 13px;
}

/* 评论区 —— 跟 .comment-author .avatar 同一个尺寸（要盖掉它的 display:block） */
.comment-author .yc-avatar {
  display: inline-flex;
  width: 40px; height: 40px;
  font-size: 17px;
  border: 2px solid var(--yc-pink-soft);
}

/* 登录页「你已经登录了」卡片 —— 跟 .yc-auth__avatar 同一个尺寸 */
.yc-auth__avatar.yc-avatar {
  width: 72px; height: 72px;
  font-size: 31px;
  border: 3px solid var(--yc-pink-soft);
}

/* Admin bar（前端顶部那条黑色管理员条）—— 核心在「您好，用户名」后面
   只给头像留了 16px 的格子。这里不定尺寸的话，首字头像会被拉成和整条
   一样高的色带，看起来就像屏幕上多了一道竖杠（v2.3.14 修复）。 */
#wpadminbar .yc-avatar {
  width: 16px; height: 16px;
  font-size: 9px;
  flex: none;
  align-self: center;
  vertical-align: middle;
  margin-left: 6px;
}

/* 用户自己上传的头像：尺寸照旧由上面那几条规则定，这里只管「非正方形时按中心裁切」。
   上传时会顺手裁一张 256×256，但原图小于这个尺寸时那一步跳过，所以裁切规则不能省。 */
.yc-avatar--img {
  object-fit: cover;
  background: var(--yc-surface-2);
}

/* ==========================================================================
   17. 个人资料页
   ========================================================================== */

/*
 * 版式沿用登录页那一套（.yc-auth__card / .yc-auth__field / .yc-auth__notice / .yc-auth__submit），
 * 只补「一张卡片里装四个小节」需要的东西：小节之间的发丝线、头像个、
 * 以及一个长得像按钮的文件选择框。
 *
 * 比登录页宽 108px，是给头像那一行留的 —— 452px 里塞不下「预览 + 选图 + 上传」三样。
 */
.yc-account { max-width: 560px; }

.yc-account__section {
  padding: 24px 32px;
  border-top: 1px solid var(--yc-border);
}
/* 小节里的表单自己不要再带一圈内边距，否则和外面那层叠成双份 */
.yc-account__section .yc-auth__form { padding: 0; }

/* ---- 分区页签（2.2.1）：贴在渐变头图下面，五个面板一键直达 ---- */
.yc-account__tabs { margin: 20px 32px 0; }
/* 面板的隐藏只认 [hidden]：服务器端全都输出，JS 挂了整页照旧纵向可用 */
.yc-account__panel[hidden] { display: none; }

@media (max-width: 600px) {
  /* 五个字挤一行会破胶囊，小屏把字收紧一点 */
  .yc-account__tabs { margin: 16px 22px 0; }
  .yc-account__tab { padding: 8px 8px; font-size: 13px; }
}

/* 「邮箱还没验证」提示条 */
.yc-profile__verify {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  padding: 18px 32px;
  border-top: 1px solid var(--yc-border);
  background: rgba(255, 176, 92, .1);
}
.yc-profile__verify-text {
  margin: 0;
  flex: 1 1 16rem;
  font-size: 13.5px;
  line-height: 1.8;
  color: var(--yc-text-soft);
}

.yc-account__h {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 7px;
  font-size: 14.5px;
  font-weight: 700;
  color: var(--yc-text);
}
.yc-account__h-icon {
  flex: none;
  display: grid;
  place-items: center;
  width: 26px; height: 26px;
  border-radius: 9px;
  background: var(--yc-pink-mist);
  color: var(--yc-pink-deep);
}
.yc-account__h-icon svg {
  width: 15px; height: 15px;
  fill: none; stroke: currentColor; stroke-width: 1.8;
  stroke-linecap: round; stroke-linejoin: round;
}

.yc-account__tip {
  margin: 0 0 16px;
  font-size: 12.5px;
  line-height: 1.8;
  color: var(--yc-text-faint);
}

/* ---- 头像那一行 ---- */
.yc-account__avatar {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}
.yc-account__preview {
  position: relative;
  flex: none;
  width: 76px; height: 76px;
  border-radius: 50%;
  border: 3px solid var(--yc-pink-soft);
  background-color: var(--yc-surface-2);
  background-position: center;
  background-size: cover;
  overflow: hidden;
}
/* 里面那张（首字头像或 <img>）铺满这一圈 */
.yc-account__preview > * {
  display: block;
  width: 100%; height: 100%;
}
/* 选了本地图还没上传：用背景图当预览，把原来那张盖掉 */
.yc-account__preview.is-local > * { opacity: 0; }

.yc-account__avatar-side {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.yc-account__upload {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}
.yc-account__off { margin: 0; }

/*
 * 文件选择框：真的 <input type="file"> 铺满整个 label 但完全透明 ——
 * 点哪儿都弹选择器，Tab 也能落到它身上（它是真的在页面上，只是看不见）。
 * 用 display:none 藏起来就会连带丢了键盘可达性。
 */
.yc-account__file {
  position: relative;
  flex: 1;
  /* 窄卡片（三栏预览、平板）里别把文件名挤到只剩省略号：
     留 168px 的下限，挤不下时让「上传头像」按钮换到下一行 */
  min-width: 168px;
  display: flex;
  align-items: center;
  gap: 10px;
  height: 42px;
  padding: 0 12px;
  border: 1px dashed var(--yc-border-strong);
  border-radius: var(--yc-radius-sm);
  background: var(--yc-surface-2);
  cursor: pointer;
  transition: border-color .18s var(--yc-ease), background .18s var(--yc-ease);
}
.yc-account__file:hover { border-color: var(--yc-pink); background: var(--yc-pink-mist); }
.yc-account__file:focus-within { border-color: var(--yc-pink); box-shadow: 0 0 0 3px var(--yc-pink-soft); }
.yc-account__file-input {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}
.yc-account__file-btn {
  flex: none;
  padding: 4px 10px;
  border: 1px solid var(--yc-border);
  border-radius: var(--yc-radius-pill);
  background: var(--yc-surface);
  font-size: 12px;
  font-weight: 600;
  color: var(--yc-pink-deep);
}
.yc-account__file-name {
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 12.5px;
  color: var(--yc-text-faint);
}

/* 四个小节各占一行的按钮会显得很长，这里只占按钮自己的宽度。
   140px 是「发送确认邮件」六个字加左右内边距的下限，再窄就换行了 ——
   剩下的宽度留给左边的文件框，不然文件名会被截得很短。 */
.yc-account__submit {
  display: inline-block;
  width: auto;
  min-width: 140px;
  padding: 11px 22px;
  font-size: 14px;
}

.yc-account__pending { margin: 0 0 16px; }
.yc-account__guest { margin: 0; padding: 0 32px 32px; }

/* ---- 注销账号：危险区 ---- */
/* 折叠起来的「删号」：能找到，但不抢戏 —— 标题和图标染成警示色就够了 */
.yc-account__section--danger .yc-account__h { color: var(--yc-danger-text); }
.yc-account__section--danger .yc-account__h-icon {
  background: var(--yc-danger-bg);
  color: var(--yc-danger-text);
}
.yc-account__danger { margin-top: 2px; }
.yc-account__danger-sum {
  display: inline-block;
  padding: 4px 0;
  cursor: pointer;
  font-size: 13px;
  color: var(--yc-text-faint);
  transition: color .2s var(--yc-ease);
}
.yc-account__danger-sum:hover { color: var(--yc-danger-text); }
.yc-account__danger[open] .yc-account__danger-sum { color: var(--yc-danger-text); font-weight: 600; }
.yc-account__danger-note {
  margin: 12px 0 0;
  padding: 12px 14px;
  border: 1px solid var(--yc-danger-line);
  border-radius: var(--yc-radius-sm);
  background: var(--yc-danger-bg);
  font-size: 13px;
  line-height: 1.8;
  color: var(--yc-danger-text);
}
.yc-account__danger-form { margin-top: 16px; }
.yc-account__check {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0 0 8px;
  font-size: 13px;
  line-height: 1.7;
  color: var(--yc-text-soft);
  cursor: pointer;
}
.yc-account__check input {
  flex: none;
  margin: 3px 0 0;
  accent-color: var(--yc-danger-text);
}
.yc-account__check-hint { margin: -2px 0 12px; }
.yc-account__submit--danger {
  background: var(--yc-danger-text);
  box-shadow: none;
}
.yc-account__submit--danger:hover {
  background: var(--yc-danger-text);
  box-shadow: 0 8px 20px rgba(184, 53, 95, .22);
}

/* 只读的框（当前邮箱）：一眼看得出不能改，但仍然可以选中复制 */
.yc-auth__field.is-readonly .yc-auth__input {
  border-style: dashed;
  background: var(--yc-surface);
}
.yc-auth__field.is-readonly input { color: var(--yc-text-soft); }

/* ==========================================================================
   18. 响应式
   ========================================================================== */
@media (max-width: 1080px) {
  .yc-layout { grid-template-columns: minmax(0, 1fr) 288px; --yc-gap: 22px; }
  :root { --yc-hero-h: 380px; }
}

@media (max-width: 900px) {
  /* 单栏：正文占满，侧栏整块不显示。
     理由：手机上没有第二栏，两块全宽小工具卡堆在文章之后既占一屏半、又容易被当成「文章没结束」；
     搜索本来就有顶栏那个按钮（见下方 ≤420px 那段的说明），日历在手机上也没什么人看。
     想恢复成「落到正文下方」，把 .yc-sidebar 这条 display:none 删掉即可，
     并把 .yc-sidebar__sticky 改回 grid-template-columns: repeat(auto-fit, minmax(260px, 1fr))。 */
  .yc-layout { grid-template-columns: minmax(0, 1fr); padding-top: 28px; }
  .yc-sidebar { display: none; }

  /* 移动端菜单：抽屉式 */
  .yc-menu-toggle { display: grid; }
  .yc-nav {
    position: fixed;
    top: 64px; left: 0; right: 0;
    margin: 0;
    padding: 10px 16px 18px;
    background: var(--yc-surface);
    border-bottom: 1px solid var(--yc-border);
    box-shadow: var(--yc-shadow);
    max-height: calc(100vh - 64px);
    overflow-y: auto;
    transform: translateY(-12px);
    opacity: 0;
    visibility: hidden;
    transition: all .24s var(--yc-ease);
  }
  .yc-nav.is-open { transform: translateY(0); opacity: 1; visibility: visible; }
  .yc-nav ul { flex-direction: column; align-items: stretch; gap: 2px; }
  .yc-nav a { padding: 11px 14px; border-radius: var(--yc-radius-sm); font-size: 15.5px; }
  .yc-nav .sub-menu {
    position: static;
    opacity: 1; visibility: visible; transform: none;
    box-shadow: none; border: 0; border-left: 2px solid var(--yc-pink-soft);
    border-radius: 0; padding: 2px 0 2px 10px; margin: 2px 0 4px 8px;
    width: auto; min-width: 0;
  }
  .yc-article__head { padding: 26px 24px 0; }
  .yc-article__content { padding: 24px 24px 32px; }
  .yc-article__foot { padding: 20px 24px 26px; }
  .yc-comments { padding: 24px 22px; }
  :root { --yc-hero-h: 330px; }
}

@media (max-width: 640px) {
  :root { --yc-hero-h: 280px; --yc-gap: 18px; }
  .yc-container { padding: 0 16px; }
  .yc-card-grid { grid-template-columns: 1fr; gap: 18px; }
  .yc-card__body { padding: 16px 17px 18px; }
  .yc-hero__inner { padding: 60px 18px 54px; }
  .yc-hero__desc { font-size: 14px; }
  .yc-brand__slogan { display: none; }
  .yc-comment .comment-content,
  .yc-comments .comment-metadata,
  .yc-comments .reply { margin-left: 0; }
  .yc-comments .comment-list ol.children { padding-left: 14px; }
  .comment-form { grid-template-columns: 1fr; }
  .yc-login-note { flex-direction: column; align-items: flex-start; gap: 13px; padding: 18px; }
  .yc-login-note__btn { width: 100%; text-align: center; }
  .yc-totop { right: 16px; bottom: 18px; width: 42px; height: 42px; }

  /* 顶栏：手机上挤不下时，先缩站名。
     原来 .yc-brand 是 flex-shrink:0，站名一长就会把右侧那排按钮顶出屏幕外，
     而侧栏在 ≤900px 已经整块隐藏 —— 搜索按钮被挤掉就等于没有搜索入口了。 */
  .yc-topbar__inner { gap: 10px; }
  .yc-brand { flex-shrink: 1; min-width: 0; }
  .yc-brand__text { min-width: 0; }
  .yc-brand__name { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .yc-actions { gap: 2px; }

  /* 登录 / 注册页 */
  .yc-auth { max-width: none; }
  .yc-auth__head { padding: 28px 22px 20px; }
  .yc-auth__form { padding: 22px 22px 26px; }
  .yc-auth__done { padding: 0 22px; }
  .yc-auth__actions { padding: 20px 22px 26px; }

  /* 个人资料页：四节各自收一下内边距，头像缩小一圈，按钮改成整行更好点 */
  .yc-account__section { padding: 20px 22px; }
  .yc-account__guest { padding: 0 22px 26px; }
  .yc-account__preview { width: 64px; height: 64px; }
  .yc-account__submit { width: 100%; min-width: 0; }
  .yc-account__avatar { gap: 14px; }
}

@media (max-width: 420px) {
  /* 顶栏那个搜索按钮在小屏必须留着 —— 侧栏在 ≤900px 整块不显示，
     它现在是手机上唯一的搜索入口。原来这里有一条 .yc-action-search{display:none}，已删。 */
  .yc-article__head { padding: 22px 18px 0; }
  .yc-article__content { padding: 20px 18px 28px; }
  .yc-article__foot { padding: 18px 18px 24px; }
}

/* ==========================================================================
   19. 打印
   ========================================================================== */
@media print {
  .yc-topbar, .yc-hero, .yc-sidebar, .yc-footer, .yc-totop,
  .yc-comments,
  body::before { display: none !important; }
  .yc-article { border: 0; box-shadow: none; }
  .yc-article__content { max-width: none; padding: 0; font-size: 12pt; line-height: 1.8; color: #000; }
  body { background: #fff; }
}

/* ==========================================================================
   20. 网盘下载卡片（[yc_download] 短代码，见 inc/download-card.php）
   ========================================================================== */
.yc-dl {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 26px 0;
  padding: 16px 18px;
  background: var(--yc-surface);
  border: 1px solid var(--yc-border-strong);
  border-radius: var(--yc-radius);
  box-shadow: var(--yc-shadow-sm);
}
.yc-dl__icon {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--yc-pink-soft), var(--yc-blue-soft));
  color: var(--yc-pink-deep);
}
.yc-dl__icon svg { width: 26px; height: 26px; }
.yc-dl__info {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.yc-dl__name {
  color: var(--yc-text);
  font-size: 15.5px;
  font-weight: 700;
  overflow-wrap: anywhere;
}
.yc-dl__meta { display: flex; flex-wrap: wrap; gap: 8px; font-size: 12.5px; }
.yc-dl__meta em { font-style: normal; }
.yc-dl__pan {
  padding: 1px 10px;
  border-radius: var(--yc-radius-pill);
  background: var(--yc-pink-soft);
  color: var(--yc-pink-deep);
  font-weight: 600;
}
.yc-dl__code { color: var(--yc-text-soft); }
.yc-dl__code code {
  padding: 0 6px;
  border-radius: 6px;
  background: var(--yc-pink-mist);
  color: var(--yc-link);
  font-size: 12.5px;
  letter-spacing: 1px;
}
.yc-dl__note { font-size: 12.5px; color: var(--yc-text-faint); }
.yc-dl__btn {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 22px;
  border-radius: var(--yc-radius-pill);
  background: linear-gradient(135deg, var(--yc-pink), var(--yc-pink-deep));
  color: #fff !important;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 4px 14px color-mix(in srgb, var(--yc-pink) 38%, transparent);
  transition: transform .25s var(--yc-ease), box-shadow .25s var(--yc-ease);
}
.yc-dl__btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px color-mix(in srgb, var(--yc-pink) 46%, transparent);
  color: #fff;
}
/* 防正文通用链接样式「洗白」按钮：content.css 里的 .yc-article__content a / a:hover
   （选择器优先级 0,1,1 / 0,2,1）比 .yc-dl__btn（0,1,0）高，会把按钮 hover 时的背景
   换成极淡的 --yc-pink-mist，白字压在近白底上就看不见了，还会被强加下划线、圆角变 3px。
   这里用更高优先级（0,2,1 / 0,3,1）把按钮样式夺回来。 */
.yc-article__content a.yc-dl__btn,
.yc-article__content a.yc-dl__btn:hover,
.yc-article__content a.yc-dl__btn:focus,
.yc-article__content a.yc-dl__btn:focus-visible {
  color: #fff;
  text-decoration: none;
  border-radius: var(--yc-radius-pill);
  background: linear-gradient(135deg, var(--yc-pink), var(--yc-pink-deep));
}
@media (max-width: 520px) {
  .yc-dl { flex-wrap: wrap; padding: 15px 16px; }
  .yc-dl__btn { width: 100%; }
}

/* ==========================================================================
   21. 醒目链接卡片（yc/link-card，动态块；编辑器预览样式在 dl-editor.css）
   胶囊造型:宽度随文字自适应,不再横占整行。
   ========================================================================== */
.yc-linkcard {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  align-items: center;
  gap: 10px;
  margin: 20px 0;
  padding: 8px 14px 8px 18px;
  background: var(--yc-pink-mist);
  border: 1px solid color-mix(in srgb, var(--yc-pink) 30%, transparent);
  border-radius: var(--yc-radius-pill);
  text-decoration: none;
  color: var(--yc-text);
  vertical-align: middle;
  transition: transform .25s var(--yc-ease), box-shadow .25s var(--yc-ease), background .25s var(--yc-ease), border-color .25s var(--yc-ease);
}
.yc-linkcard:hover {
  transform: translateY(-2px);
  background: var(--yc-pink-soft);
  border-color: var(--yc-pink);
  box-shadow: 0 8px 20px color-mix(in srgb, var(--yc-pink) 30%, transparent);
  color: var(--yc-text);
  text-decoration: none;
}
.yc-linkcard__body { display: inline-flex; align-items: baseline; gap: 8px; flex-wrap: wrap; min-width: 0; }
.yc-linkcard__text { font-weight: 700; color: var(--yc-pink-deep); font-size: 15px; overflow-wrap: anywhere; }
.yc-linkcard__desc { font-size: 12.5px; color: var(--yc-text-soft); }
.yc-linkcard__arrow {
  flex: 0 0 auto;
  width: 18px; height: 18px;
  color: var(--yc-pink-deep);
  transition: transform .25s var(--yc-ease);
}
.yc-linkcard__arrow svg { width: 18px; height: 18px; display: block; }
.yc-linkcard:hover .yc-linkcard__arrow { transform: translateX(3px); }
