/* =====================================================================
   滇学社 · 森林手绘清爽皮肤 ｜ 电脑端 v2.0
   Forest Field Notes · PC
   ---------------------------------------------------------------------
   与手机端（设置 › 移动端 › 自定义代码）同一套令牌：
   --fy-paper 米白纸 / --fy-leaf 苔绿 / --fy-ink 墨绿字 / 楷体标题
   ---------------------------------------------------------------------
   回滚：后台 › 电脑端 › 自定义代码 › 头部自定义，删掉那行
        <link rel="stylesheet" href="/static/css/fy-pc.css?v=…">
   文件本身留着不影响任何页面。
   ===================================================================== */

/* ===================== 1. 设计令牌 ===================== */
:root {
  /* 纸张 */
  --fy-paper: #FDFCF6;
  --fy-paper-2: #F7F9EF;
  --fy-paper-3: #F3F7E9;
  --fy-kraft: #FBF6E4;
  /* 笔画 */
  --fy-line: #D8E2C9;
  --fy-edge: #C6D6B4;
  --fy-line-2: #CBD9BE;
  --fy-line-3: #E9EFDD;
  /* 绿 */
  --fy-leaf: #3E7A4E;
  --fy-leaf-deep: #2C5738;
  --fy-leaf-soft: #70986A;
  /* 墨 */
  --fy-ink: #233127;
  --fy-ink-2: #4B5F50;
  --fy-ink-3: #7E907C;
  /* 云南点缀 */
  --fy-camellia: #C25B4E;  /* 山茶红 */
  --fy-mushroom: #C08A2E;  /* 菌子橙 */
  --fy-tie-dye: #4F7E92;   /* 扎染蓝 */

  --fy-hand: 'JasonHandwriting 1', 'LXGW WenKai', 'Kaiti SC', 'STKaiti', 'KaiTi', '楷体', 'Songti SC', 'Noto Serif SC', serif;

  /* 纸纹 / 手绘笔触，都是一段 data-uri，不外链 */
  --fy-dot: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22'%3E%3Ccircle cx='1.2' cy='1.2' r='1.2' fill='%233E7A4E' fill-opacity='.10'/%3E%3C/svg%3E");
  --fy-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.05'/%3E%3C/svg%3E");
  --fy-wave: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='46' height='5' viewBox='0 0 46 5'%3E%3Cpath d='M0 3.2c4-3 8-3 12 0s8 3 12 0 8-3 12 0 6 2.4 10 0' fill='none' stroke='%233E7A4E' stroke-width='1.6' stroke-linecap='round' opacity='.55'/%3E%3C/svg%3E");
  --fy-sprig: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='104' height='104' viewBox='0 0 104 104' fill='none' stroke='%233E7A4E' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' stroke-opacity='.55'%3E%3Cpath d='M54 94c0-23-2-40-9-56'/%3E%3Cpath d='M45 38c-12-3-22 5-24 17 12 5 23 0 24-17z'/%3E%3Cpath d='M48 56c11-7 23-5 29 4-8 10-22 9-29-4z'/%3E%3Cpath d='M52 73c9-5 19-2 24 6-8 7-19 3-24-6z'/%3E%3Cpath d='M64 18c-3 9-10 14-18 15 1-10 7-16 18-15z'/%3E%3C/svg%3E");

  /* 覆盖站点自己那一层令牌 */
  --ls-primary: #3E7A4E;
  --ls-primary-rgb: 62, 122, 78;
  --ls-primary-hover: #2C5738;
  --ls-primary-light: #E7F0DE;
  --ls-bg: #EDF2E1;
  --ls-bg-light: #F5F8EC;
  --ls-bg-hover: #F1F5E6;
  --ls-card-bg: #FDFCF6;
  --ls-bg-white: #FDFCF6;
  --ls-border: #D8E2C9;
  --ls-border-light: #E9EFDD;
  --ls-text: #233127;
  --ls-text-primary: #233127;
  --ls-text-secondary: #4B5F50;
  --ls-text-muted: #8A9A88;
  --ls-radius: 12px;
  --ls-radius-sm: 8px;
  --ls-radius-md: 12px;
  --ls-radius-lg: 16px;
  --ls-radius-xl: 16px;
  --ls-success: #4E8C5A;
  --ls-danger: #C25B4E;
  --ls-warning: #C08A2E;
  --ls-shadow-sm: 0 1px 2px rgba(44, 87, 56, .05);
  --ls-shadow-md: 0 10px 26px -22px rgba(44, 87, 56, .75);
  --ls-shadow-lg: 0 24px 60px -32px rgba(44, 87, 56, .8);
}

/* ===================== 2. 纸面 ===================== */
body.lightsns {
  background-color: #E8EEDC;
  background-image:
    radial-gradient(1100px 500px at 6% -12%, rgba(112, 152, 98, .36), rgba(112, 152, 98, 0) 70%),
    radial-gradient(860px 420px at 98% 0%, rgba(150, 180, 120, .26), rgba(150, 180, 120, 0) 72%),
    var(--fy-dot),
    var(--fy-grain);
  background-repeat: no-repeat, no-repeat, repeat, repeat;
  background-size: auto, auto, 22px 22px, 160px 160px;
  background-attachment: fixed, fixed, fixed, fixed;
  color: var(--fy-ink-2);
  font-family: "Microsoft YaHei", "PingFang SC", sans-serif;
}

body.lightsns ::selection {
  background: rgba(62, 122, 78, .18);
  color: var(--fy-ink);
}

/* 正文里的链接才换成墨绿；按钮、导航这些留各自的颜色 */
body.lightsns .ls-text a,
body.lightsns .ls-article-desc a,
body.lightsns .ls-post-meta a {
  color: var(--fy-leaf);
}

body.lightsns .ls-text a:hover,
body.lightsns .ls-article-desc a:hover {
  color: var(--fy-leaf-deep);
}

/* 滚动条：苔绿细条 */
body.lightsns ::-webkit-scrollbar {
  width: 8px;
}

body.lightsns ::-webkit-scrollbar-track {
  background: transparent;
}

body.lightsns ::-webkit-scrollbar-thumb {
  background: rgba(62, 122, 78, .22);
  border-radius: 999px;
}

body.lightsns ::-webkit-scrollbar-thumb:hover {
  background: rgba(62, 122, 78, .38);
}
/* ===================== 3. 顶栏 ===================== */
body.lightsns .ls-header {
  background: rgba(253, 252, 246, .90);
  -webkit-backdrop-filter: blur(14px) saturate(1.15);
  backdrop-filter: blur(14px) saturate(1.15);
  border-bottom: 1px solid var(--fy-line);
  box-shadow: 0 12px 26px -24px rgba(44, 87, 56, .9);
}

body.lightsns .ls-logo-img {
  filter: saturate(.95);
}

/* 主导航：楷体 + 手绘波浪下划线 */
body.lightsns .ls-nav-item {
  font-family: var(--fy-hand);
  font-size: 15.5px;
  letter-spacing: .07em;
  color: #33473B;
  border-radius: 10px;
  white-space: nowrap;
  transition: color .18s ease, background-color .18s ease;
}

/* 窄一点的屏上收紧，别把导航挤成两行 */
@media (max-width: 1240px) {
  body.lightsns .ls-nav-item {
    font-size: 14.5px;
    letter-spacing: .02em;
  }
}

body.lightsns .ls-nav-item>* {
  color: inherit;
}

body.lightsns .ls-nav-item i.remix-icon,
body.lightsns .ls-nav-item svg {
  color: #5C7A60;
  opacity: .9;
}

body.lightsns .ls-nav-item:hover {
  color: var(--fy-leaf-deep);
  background-color: rgba(62, 122, 78, .06);
}

body.lightsns .ls-nav-item:hover i.remix-icon {
  color: var(--fy-leaf);
}

body.lightsns .ls-nav-item.ls-active {
  color: var(--fy-leaf-deep);
  background-image: var(--fy-wave);
  background-repeat: repeat-x;
  background-position: center bottom 3px;
  background-size: auto 5px;
}

/* 搜索：纸片胶囊 */
body.lightsns .ls-search-trigger {
  background: rgba(255, 255, 255, .75);
  border: 1px dashed var(--fy-line-2);
  border-radius: 999px;
  color: var(--fy-ink-3);
  white-space: nowrap;
  transition: border-color .18s ease, background-color .18s ease;
}

body.lightsns .ls-search-trigger:hover {
  border-color: var(--fy-leaf-soft);
  background: #fff;
}

/* 登录 / 注册：一枚苔绿印章 */
body.lightsns .ls-register-btn,
body.lightsns .ls-login-btn {
  font-family: var(--fy-hand);
  font-size: 14px;
  letter-spacing: .08em;
  color: #FFF8F0 !important;
  background: var(--fy-leaf) !important;
  border: 1px solid var(--fy-leaf-deep);
  border-radius: 999px !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .28), 0 6px 14px -10px rgba(44, 87, 56, .9);
  transition: transform .18s ease, background-color .18s ease;
}

body.lightsns .ls-register-btn *,
body.lightsns .ls-login-btn * {
  color: #FFF8F0 !important;
}

body.lightsns .ls-register-btn:hover,
body.lightsns .ls-login-btn:hover {
  background: var(--fy-leaf-deep) !important;
  transform: translateY(-1px);
}

/* 顶部下拉面板 */
body.lightsns .ls-dropdown,
body.lightsns .ls-nav-dropdown {
  background: var(--fy-paper);
  border: 1px solid #CBD9BE;
  border-radius: 16px;
  box-shadow: 0 20px 44px -30px rgba(44, 87, 56, .9);
}

/* ===================== 4. 左侧索引 ===================== */
body.lightsns .ls-card.ls-content-nav {
  background: var(--fy-paper);
  border: 1px solid #CBD9BE;
  border-radius: 18px;
  padding: 8px;
  box-shadow: 0 2px 3px rgba(44, 87, 56, .05), 0 14px 30px -24px rgba(44, 87, 56, .55);
}

body.lightsns .ls-content-nav-item {
  position: relative;
  border-radius: 12px;
  transition: background-color .18s ease, box-shadow .18s ease;
}

body.lightsns .ls-content-nav-item:hover {
  background: var(--fy-paper-3) !important;
}

body.lightsns .ls-content-nav-item.ls-active {
  background: #EFF4E4 !important;
  box-shadow: inset 0 0 0 1px #DCE7C9;
}

body.lightsns .ls-content-nav-item.ls-active::after {
  content: "";
  position: absolute;
  inset-inline-start: 6px;
  top: 50%;
  width: 3px;
  height: 18px;
  margin-top: -9px;
  border-radius: 999px;
  background: var(--fy-leaf);
}

body.lightsns .ls-nav-title {
  font-family: var(--fy-hand);
  font-size: 15.5px;
  font-weight: 700;
  letter-spacing: .06em;
  color: var(--fy-ink);
}

body.lightsns .ls-content-nav-item.ls-active .ls-nav-title {
  color: var(--fy-leaf-deep);
}

body.lightsns .ls-nav-icon {
  width: 26px;
  height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  background: rgba(62, 122, 78, .07);
  border: 1px dashed rgba(62, 122, 78, .16);
  color: #5C7A60;
}

body.lightsns .ls-nav-icon i.remix-icon {
  font-size: 16px;
}

body.lightsns .ls-content-nav-item.ls-active .ls-nav-icon {
  color: var(--fy-leaf);
}

body.lightsns .ls-content-nav-item:hover .ls-nav-icon {
  color: var(--fy-leaf-soft);
}

/* ===================== 5. 公告便签 ===================== */
body.lightsns .ls-banner {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, #FCF8E9, #F8F3DE);
  border: 1px dashed #DCCFA8;
  border-radius: 14px;
  box-shadow: 0 1px 2px rgba(120, 100, 50, .06);
}

/* 便签右端压一枝蕨，很淡，只做质感 */
body.lightsns .ls-banner::after {
  content: "";
  position: absolute;
  right: -6px;
  top: 50%;
  width: 58px;
  height: 58px;
  margin-top: -29px;
  opacity: .18;
  pointer-events: none;
  background: var(--fy-sprig) center/contain no-repeat;
}

body.lightsns .ls-banner-icon {
  background: rgba(194, 91, 78, .10);
  border-radius: 10px;
  color: var(--fy-camellia);
}

body.lightsns .ls-banner-tag {
  font-family: var(--fy-hand);
  letter-spacing: .1em;
  background: var(--fy-camellia);
  color: #FFF8F1;
  border-radius: 6px;
}

body.lightsns .ls-banner-item,
body.lightsns .ls-banner-item a {
  color: #6B5C3C;
}

/* ===================== 6. 今日推荐 ===================== */
body.lightsns .ls-recommend {
  background: var(--fy-paper);
  border: 1px solid #CBD9BE;
  border-radius: 18px;
  box-shadow: 0 2px 3px rgba(44, 87, 56, .05), 0 14px 30px -24px rgba(44, 87, 56, .55);
}

body.lightsns .ls-recommend-header h3 {
  font-family: var(--fy-hand);
  font-size: 17.5px;
  font-weight: 700;
  letter-spacing: .08em;
  color: var(--fy-ink);
  padding-bottom: 8px;
  background-image: var(--fy-wave);
  background-repeat: repeat-x;
  background-position: left bottom;
  background-size: auto 5px;
  display: inline-block;
}

body.lightsns .ls-recommend-more {
  font-family: var(--fy-hand);
  font-size: 13px;
  letter-spacing: .06em;
  color: #5C7A5E;
  border: 1px dashed var(--fy-line-2);
  border-radius: 999px;
  padding: 3px 10px;
  transition: background-color .18s ease, border-color .18s ease;
}

body.lightsns .ls-recommend-more:hover {
  background: var(--fy-paper-3);
  border-color: var(--fy-leaf-soft);
}

/* 缩略图钉成一张小相片 */
body.lightsns .ls-recommend-card {
  background: var(--fy-paper);
  border: 1px solid #CBD9BE;
  border-radius: 14px;
  padding: 6px 6px 2px;
  overflow: hidden;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

body.lightsns .ls-recommend-card:hover {
  transform: translateY(-2px);
  border-color: var(--fy-line-2);
  box-shadow: 0 14px 26px -22px rgba(44, 87, 56, .9);
}

body.lightsns .ls-recommend-cover {
  border-radius: 9px;
  display: block;
}

body.lightsns .ls-recommend-info {
  padding: 8px 4px 6px;
}

body.lightsns .ls-recommend-title,
body.lightsns .ls-recommend-info h4 {
  color: var(--fy-ink);
  font-size: 13.5px;
  line-height: 1.5;
}

body.lightsns .ls-recommend-info span,
body.lightsns .ls-recommend-meta {
  color: var(--fy-ink-3);
  font-size: 11.5px;
}

/* ===================== 7. 信息流 ===================== */
body.lightsns .ls-post-item {
  background: var(--fy-paper);
  border: 1px solid #CBD9BE;
  border-radius: 18px;
  box-shadow: 0 2px 3px rgba(44, 87, 56, .05), 0 14px 30px -24px rgba(44, 87, 56, .55);
  transition: border-color .2s ease, box-shadow .2s ease;
}

body.lightsns .ls-post-item:hover {
  border-color: var(--fy-line-2);
  box-shadow: 0 3px 5px rgba(44, 87, 56, .06), 0 20px 38px -22px rgba(44, 87, 56, .6);
}

/* 头像：一圈纸边 */
body.lightsns .ls-avatar {
  box-shadow: 0 0 0 2px var(--fy-paper), 0 0 0 3px rgba(44, 87, 56, .10);
}

body.lightsns .ls-post-user-name {
  font-family: var(--fy-hand);
  font-size: 15.5px;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--fy-ink);
}

body.lightsns .ls-post-user-name a {
  color: var(--fy-ink);
}

body.lightsns .ls-post-meta {
  color: var(--fy-ink-3);
  font-size: 12px;
}

body.lightsns .ls-post-more {
  color: #9AAB98;
  border-radius: 8px;
}

body.lightsns .ls-post-more:hover {
  background: var(--fy-paper-3);
  color: var(--fy-leaf);
}

/* 正文 */
body.lightsns .ls-text {
  color: #2B3A2E;
  font-size: 15px;
  line-height: 1.88;
  letter-spacing: .01em;
}

body.lightsns .ls-text a {
  color: var(--fy-leaf);
  text-decoration-color: rgba(62, 122, 78, .35);
  text-underline-offset: 3px;
}

/* 长文摘要：一张便签 */
body.lightsns .ls-post-article {
  background: var(--fy-paper-2);
  border: 1px dashed #DCE6CE;
  border-radius: 14px;
  overflow: hidden;
}

body.lightsns .ls-article-desc {
  color: var(--fy-ink-2);
  font-size: 13.5px;
  line-height: 1.75;
}

body.lightsns .ls-article-thumb-item img,
body.lightsns .ls-article-thumbs img {
  border-radius: 8px;
}

/* 视频 / 音乐卡：加一道纸边，别让黑块砸在纸面上 */
body.lightsns .ls-post-video,
body.lightsns .ls-post-music,
body.lightsns .ls-post-voice {
  border-radius: 14px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(44, 87, 56, .10);
}

body.lightsns .ls-post-collection {
  background: var(--fy-paper-3);
  border: 1px dashed var(--fy-line-2);
  border-radius: 10px;
  color: #4C6B4E;
}

/* 标签：虚线胶囊 */
body.lightsns .ls-tag-item {
  background: rgba(255, 255, 255, .65);
  border: 1px dashed var(--fy-line-2);
  border-radius: 999px;
  color: #4C6B4E;
  font-size: 12px;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}

body.lightsns .ls-tag-item:hover {
  background: var(--fy-paper-3);
  border-color: var(--fy-leaf-soft);
  color: var(--fy-leaf-deep);
}

/* 页脚那条：上虚线 + 版块胶囊 */
body.lightsns .ls-post-footer {
  border-top: 1px dashed var(--fy-line-3);
  margin-top: 12px;
  padding-top: 10px;
}

body.lightsns .ls-board-link {
  background: var(--fy-paper-3);
  border: 1px dashed var(--fy-line-2);
  border-radius: 999px;
  color: #4C6B4E;
  font-size: 12px;
  padding: 3px 10px 3px 4px;
}

body.lightsns .ls-board-link:hover {
  border-color: var(--fy-leaf-soft);
  color: var(--fy-leaf-deep);
}

body.lightsns .ls-action-btn {
  color: #8A9A88;
  border-radius: 999px;
  transition: color .18s ease, background-color .18s ease;
}

body.lightsns .ls-action-btn:hover {
  color: var(--fy-leaf);
  background: rgba(62, 122, 78, .07);
}

body.lightsns .ls-action-btn.ls-active,
body.lightsns .ls-action-btn.is-active {
  color: var(--fy-camellia);
}

/* 角标：水彩印章 */
body.lightsns .ls-post-corner-badge {
  background: linear-gradient(rgba(253, 252, 246, .84), rgba(253, 252, 246, .84)), var(--ls-corner-badge-color, #3E7A4E) !important;
  box-shadow: inset 0 0 0 1px rgba(44, 87, 56, .22) !important;
  border-radius: 7px !important;
  color: #2C5738 !important;
  font-weight: 600;
}

body.lightsns .ls-post-corner-badge span {
  color: #2C5738 !important;
}

/* 热搜标：朱砂 */
body.lightsns .ls-item-tag.hot {
  background: var(--fy-camellia) !important;
  color: #FFF9F2 !important;
  border-radius: 6px !important;
}

/* 空态 */
body.lightsns .ls-post-empty,
body.lightsns .ls-empty {
  color: #8A9A88;
}

/* ===================== 8. 右栏小工具 ===================== */
body.lightsns .ls-widget-card {
  background: var(--fy-paper);
  border: 1px solid #CBD9BE;
  border-radius: 18px;
  box-shadow: 0 2px 3px rgba(44, 87, 56, .05), 0 14px 30px -24px rgba(44, 87, 56, .55);
  overflow: hidden;
}

body.lightsns .ls-widget-header {
  border-bottom: 1px dashed var(--fy-line-3);
  padding: 13px 15px 11px;
}

body.lightsns .ls-widget-header h3,
body.lightsns .ls-widget-title,
body.lightsns .ls-widget-header .ls-title {
  font-family: var(--fy-hand);
  font-size: 15.5px;
  font-weight: 700;
  letter-spacing: .08em;
  color: var(--fy-ink);
  padding-bottom: 7px;
  background-image: var(--fy-wave);
  background-repeat: repeat-x;
  background-position: left bottom;
  background-size: auto 5px;
  display: inline-block;
}

body.lightsns .ls-widget-header-right,
body.lightsns .ls-widget-more {
  color: var(--fy-ink-3);
  font-size: 12px;
}

/* 图标入口盘：浅苔底 + 虚线边，图片保留但收敛饱和度 */
body.lightsns .powell-grid-button-icon {
  background: var(--fy-paper-3) !important;
  border: 1px dashed var(--fy-line-2);
  border-radius: 13px !important;
  box-shadow: none !important;
}

body.lightsns .powell-grid-button-icon img {
  filter: saturate(.88) contrast(.98);
}

body.lightsns .powell-grid-button-item:hover .powell-grid-button-icon {
  background: #EAF1DC !important;
  border-color: var(--fy-leaf-soft);
}

body.lightsns .powell-grid-button-text,
body.lightsns .powell-grid-button-item span {
  font-family: var(--fy-hand);
  color: var(--fy-ink-2);
  letter-spacing: .04em;
}

/* ===================== 9. 页脚 ===================== */
/* 页脚由 footer 模块自己上色（后台「页脚」里设的橄榄绿 #536443）。
   皮肤不再给整块 .ls-footer 铺深绿 —— 那会让顶部的装饰区（动物＋砖墙）
   变成一条比正文区更深、更艳的横带，和下面一块绿撞成两层，边界很硬。
   装饰区留透明，直接透出页面底色：动物站在砖墙上，墙下接正文区，
   层次交给砖墙那条线交代，不用靠色块差交代。 */
body.lightsns .ls-footer {
  position: relative;
  background: transparent;
  border-top: 0;
  color: #C6D8B9;
}

/* 正文区文字：只在真有深色底的那一块里调亮度 */
body.lightsns .ls-footer .fw-main a,
body.lightsns .ls-footer .fw-main p,
body.lightsns .ls-footer .fw-main span,
body.lightsns .ls-footer .fw-main div {
  color: #C6D8B9;
}

body.lightsns .ls-footer .fw-main a:hover {
  color: #EFF6E4;
}

/* ===================== 10. 按钮 / 表单 / 弹层 ===================== */
body.lightsns .ls-btn {
  font-family: "Microsoft YaHei", "PingFang SC", sans-serif;
  border-radius: 999px;
  letter-spacing: .02em;
}

body.lightsns .ls-btn-primary {
  background: var(--fy-leaf);
  border: 1px solid var(--fy-leaf-deep);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .22);
}

body.lightsns .ls-btn-primary:hover {
  background: var(--fy-leaf-deep);
}

body.lightsns .ls-btn-ghost {
  border: 1px dashed var(--fy-line-2);
  color: #4C6B4E;
  background: transparent;
}

body.lightsns .ls-btn-ghost:hover {
  background: var(--fy-paper-3);
  border-color: var(--fy-leaf-soft);
}

body.lightsns .ls-dialog,
body.lightsns .ls-modal,
body.lightsns .ls-modal-content,
body.lightsns .ls-panel {
  background: var(--fy-paper);
  border: 1px solid #CBD9BE;
  border-radius: 18px;
  box-shadow: 0 30px 70px -40px rgba(20, 45, 28, .9);
}

body.lightsns .ls-toast {
  border-radius: 999px;
  box-shadow: 0 16px 32px -22px rgba(20, 45, 28, .9);
}

body.lightsns input.ls-input,
body.lightsns textarea.ls-input,
body.lightsns .ls-input {
  background: #fff;
  border: 1px solid #CBD9BE;
  border-radius: 12px;
}

body.lightsns .ls-input:focus {
  border-color: var(--fy-leaf-soft);
  box-shadow: 0 0 0 3px rgba(62, 122, 78, .12);
}

/* ===================== 10.5 内容详情页 · 通用卡片 ===================== */
body.lightsns .ls-article-card,
body.lightsns .ls-article-header-card,
body.lightsns .ls-article-content-card,
body.lightsns .ls-article-interact-card,
body.lightsns .ls-article-comments,
body.lightsns .ls-article-bbs-card {
  background: var(--fy-paper);
  border: 1px solid #CBD9BE;
  border-radius: 18px;
  box-shadow: 0 2px 3px rgba(44, 87, 56, .05), 0 14px 30px -24px rgba(44, 87, 56, .55);
}

body.lightsns .ls-article-detail-page .ls-article-title,
body.lightsns .ls-article-detail-main .ls-article-title {
  font-family: var(--fy-hand) !important;
  font-size: 27px !important;
  font-weight: 700 !important;
  line-height: 1.55 !important;
  letter-spacing: .03em !important;
  color: var(--fy-ink) !important;
}

/* 信息流里的长文卡标题（比详情页小一档） */
body.lightsns .ls-post-item .ls-article-title {
  font-family: var(--fy-hand);
  font-size: 17px;
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1.5;
  color: var(--fy-ink);
}

body.lightsns .ls-article-body,
body.lightsns .ls-article-hidden-body {
  color: #2B3A2E;
  font-size: 16px;
  line-height: 1.95;
  letter-spacing: .02em;
}

body.lightsns .ls-article-body h1,
body.lightsns .ls-article-body h2,
body.lightsns .ls-article-body h3,
body.lightsns .ls-article-body h4 {
  font-family: var(--fy-hand);
  letter-spacing: .04em;
  color: var(--fy-ink);
}

body.lightsns .ls-article-body blockquote {
  background: var(--fy-paper-2);
  border-inline-start: 3px solid #B7C9A5;
  border-radius: 0 10px 10px 0;
  color: #4C6152;
}

body.lightsns .ls-article-body hr {
  border: 0;
  height: 6px;
  background: var(--fy-wave) repeat-x center/auto 5px;
  opacity: .5;
}

/* 正文配图：钉进笔记里的相片 */
body.lightsns .ls-article-body img:not(.ls-emoji):not(.emotion-type-img) {
  background: #fff;
  padding: 6px;
  border: 1px solid var(--fy-line);
  border-radius: 10px;
  box-shadow: 0 10px 22px -20px rgba(44, 87, 56, .8);
}

body.lightsns .ls-article-cover {
  border: 1px solid var(--fy-line);
  border-radius: 16px;
  background: var(--fy-paper);
  padding: 6px;
}

body.lightsns .ls-article-cover img {
  border-radius: 11px;
}

body.lightsns .ls-article-label,
body.lightsns .ls-article-badges span {
  background: var(--fy-paper-3) !important;
  border: 1px dashed var(--fy-line-2);
  border-radius: 999px !important;
  color: #4C6B4E !important;
  font-weight: 600;
}

body.lightsns .ls-article-author-name {
  font-family: var(--fy-hand);
  font-weight: 700;
  color: var(--fy-ink);
}

body.lightsns .ls-article-author-meta {
  color: var(--fy-ink-3);
}

body.lightsns .ls-article-follow-btn,
body.lightsns .ls-article-bbs-follow-btn {
  border: 1px dashed var(--fy-line-2) !important;
  background: rgba(255, 255, 255, .7) !important;
  color: var(--fy-leaf) !important;
  border-radius: 999px !important;
}

body.lightsns .ls-article-copyright {
  background: var(--fy-paper-2) !important;
  border: 1px dashed var(--fy-line-2) !important;
  border-radius: 14px !important;
}

/* 通用卡片：个人主页、收藏、商城这些页面里的 .ls-card */
body.lightsns .ls-card {
  background: var(--fy-paper);
  border-radius: 18px;
}

body.lightsns .ls-card-title,
body.lightsns .ls-section-title {
  font-family: var(--fy-hand);
  font-weight: 700;
  letter-spacing: .06em;
  color: var(--fy-ink);
}

/* ===================== 11. 手绘点缀 ===================== */
/* 左下松枝、右下菌子：只在宽屏出现，很淡，纯装饰 */
body.lightsns::before,
body.lightsns::after {
  content: "";
  position: fixed;
  bottom: 18px;
  width: 150px;
  height: 150px;
  pointer-events: none;
  z-index: 0;
  opacity: .16;
  background: var(--fy-sprig) center/contain no-repeat;
}

body.lightsns::before {
  left: 10px;
}

body.lightsns::after {
  right: 10px;
  transform: scaleX(-1) rotate(-8deg);
}

@media (max-width: 1280px) {
  body.lightsns::before,
  body.lightsns::after {
    display: none;
  }
}

/* ===================== 12. 夜间模式让路 =====================
   夜间模式模块挂在 html[data-nm="dark"]，纸白皮肤必须在那种情况下退出，
   否则白卡片配深色字会一片惨白。 */
html[data-nm="dark"] body.lightsns {
  background-color: #1A1F18;
  background-image: none;
}

html[data-nm="dark"] body.lightsns .ls-header {
  background: rgba(30, 35, 27, .94);
  border-bottom-color: rgba(255, 255, 255, .08);
}

html[data-nm="dark"] body.lightsns .ls-card.ls-content-nav,
html[data-nm="dark"] body.lightsns .ls-recommend,
html[data-nm="dark"] body.lightsns .ls-post-item,
html[data-nm="dark"] body.lightsns .ls-widget-card,
html[data-nm="dark"] body.lightsns .ls-recommend-card,
html[data-nm="dark"] body.lightsns .ls-banner,
html[data-nm="dark"] body.lightsns .ls-post-article,
html[data-nm="dark"] body.lightsns .ls-dialog,
html[data-nm="dark"] body.lightsns .ls-modal-content {
  background: #1E231B;
  border-color: rgba(255, 255, 255, .09);
}

html[data-nm="dark"] body.lightsns .ls-content-nav-item.ls-active {
  background: #252B21 !important;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08);
}

html[data-nm="dark"] body.lightsns .ls-nav-title,
html[data-nm="dark"] body.lightsns .ls-post-user-name,
html[data-nm="dark"] body.lightsns .ls-post-user-name a,
html[data-nm="dark"] body.lightsns .ls-article-title,
html[data-nm="dark"] body.lightsns .ls-recommend-header h3,
html[data-nm="dark"] body.lightsns .ls-widget-header h3 {
  color: #DCE8D6;
}

html[data-nm="dark"] body.lightsns .ls-text {
  color: #C3D0BC;
}

html[data-nm="dark"] body.lightsns::before,
html[data-nm="dark"] body.lightsns::after {
  display: none;
}
