/* =====================================================================
   解梦频道 · 夜色梦境风 v20260901a
   - jm_index.html（独立首页：夜空 hero/星点/月轮/鎏金标题/分类卡/文章板块）
   - article_list_jm / article_detail_jm / search_jm（继承 base.html：
     夜色页头带 jm-band + 宣纸浅色正文区保证长文阅读）
   - 不依赖老站 bootstrap.css；仅 jm 页面加载，改版请 bump ?v=
   ===================================================================== */

:root {
    --jm-night: #141a33;
    --jm-night-2: #1b2344;
    --jm-night-3: #232c54;
    --jm-gold: #d4b46a;
    --jm-gold-2: #e9d9ae;
    --jm-moon: #f4efe2;
    --jm-ink: #33302a;
    --jm-ink-2: #6f6858;
    --jm-paper: #faf7ee;
    --jm-paper-deep: #f1ead9;
    --jm-line: rgba(212, 180, 106, .28);
    --jm-serif: Georgia, "Noto Serif SC", "Source Han Serif SC", "STSong", "SimSun", serif;
}

/* ============ 一、jm 独立首页 ============ */

.jm-page {
    margin: 0;
    padding: 0;
    background: var(--jm-night);
    color: var(--jm-moon);
    font-family: "Microsoft YaHei", "PingFang SC", sans-serif;
    min-height: 100vh;
}

.jm-page a { color: inherit; text-decoration: none; }
.jm-wrap { max-width: 1080px; margin: 0 auto; padding: 0 20px; }

/* 顶部细导航 */
.jm-topnav {
    background: rgba(10, 13, 28, .92);
    border-bottom: 1px solid var(--jm-line);
    position: sticky; top: 0; z-index: 20;
}
.jm-topnav .jm-wrap {
    display: flex; align-items: center; gap: 4px;
    height: 46px; overflow-x: auto; white-space: nowrap;
    scrollbar-width: none;
}
.jm-topnav .jm-wrap::-webkit-scrollbar { display: none; }
.jm-topnav .jm-logo {
    font-family: var(--jm-serif);
    color: var(--jm-gold);
    font-size: 19px; letter-spacing: 2px;
    margin-right: 14px; flex: none;
}
.jm-topnav a.jm-nav {
    flex: none; padding: 4px 11px; font-size: 14px;
    color: rgba(244, 239, 226, .78); border-radius: 3px;
}
.jm-topnav a.jm-nav:hover { color: var(--jm-gold-2); }
.jm-topnav a.jm-nav.on {
    color: var(--jm-night);
    background: var(--jm-gold);
    font-weight: 600;
}

/* 夜空 hero：渐变底 + CSS 星点 + 月轮 */
.jm-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(1200px 500px at 70% -10%, #2b3566 0%, transparent 60%),
        radial-gradient(900px 420px at 10% 110%, #1e2a55 0%, transparent 55%),
        linear-gradient(180deg, var(--jm-night-2) 0%, var(--jm-night) 70%);
    border-bottom: 1px solid var(--jm-line);
    padding: 72px 0 58px;
    text-align: center;
}
.jm-hero::before {           /* 星点层 */
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background-image:
        radial-gradient(1.6px 1.6px at 12% 26%, rgba(255,255,255,.9) 45%, transparent 55%),
        radial-gradient(1.2px 1.2px at 28% 68%, rgba(255,255,255,.55) 45%, transparent 55%),
        radial-gradient(2.1px 2.1px at 41% 18%, rgba(255,246,214,.95) 45%, transparent 55%),
        radial-gradient(1.1px 1.1px at 55% 44%, rgba(255,255,255,.5) 45%, transparent 55%),
        radial-gradient(1.7px 1.7px at 66% 74%, rgba(255,255,255,.8) 45%, transparent 55%),
        radial-gradient(1.3px 1.3px at 74% 30%, rgba(255,255,255,.6) 45%, transparent 55%),
        radial-gradient(2.4px 2.4px at 86% 58%, rgba(255,246,214,.9) 45%, transparent 55%),
        radial-gradient(1.2px 1.2px at 93% 16%, rgba(255,255,255,.65) 45%, transparent 55%),
        radial-gradient(1.5px 1.5px at 6% 55%, rgba(255,255,255,.6) 45%, transparent 55%),
        radial-gradient(1.4px 1.4px at 35% 88%, rgba(255,255,255,.5) 45%, transparent 55%),
        radial-gradient(1.9px 1.9px at 58% 82%, rgba(255,246,214,.75) 45%, transparent 55%),
        radial-gradient(1.2px 1.2px at 82% 86%, rgba(255,255,255,.5) 45%, transparent 55%);
}
.jm-hero .jm-moon {          /* 月轮 */
    position: absolute; top: 46px; right: 14%;
    width: 74px; height: 74px; border-radius: 50%;
    background: radial-gradient(circle at 38% 34%, #fdf7e4 0%, #ecd9a8 58%, #d9bd7f 100%);
    box-shadow:
        0 0 24px 6px rgba(233, 217, 174, .34),
        0 0 72px 26px rgba(212, 180, 106, .18);
    opacity: .9;
    animation: jm-moon-glow 5.5s ease-in-out infinite;   /* 荧光韵：呼吸光晕 */
}
@keyframes jm-moon-glow {
    0%, 100% {
        box-shadow: 0 0 24px 6px rgba(233, 217, 174, .34),
                    0 0 72px 26px rgba(212, 180, 106, .16);
    }
    50% {
        box-shadow: 0 0 36px 12px rgba(240, 226, 186, .55),
                    0 0 100px 38px rgba(212, 180, 106, .30);
    }
}
@media (prefers-reduced-motion: reduce) {
    .jm-hero .jm-moon { animation: none; }
}

/* 鼠标跟随星星特效（jm 全站，_jm_top.html 注入；仅桌面 mousemove 触发） */
.jm-star {
    position: fixed; z-index: 999; pointer-events: none;
    font-size: 12px; line-height: 1; user-select: none;
    text-shadow: 0 0 8px rgba(233, 217, 174, .85);
    animation: jm-star-rise .9s ease-out forwards;
}
@keyframes jm-star-rise {
    0%   { opacity: .95; transform: translate(-50%, -50%) scale(.5) rotate(0deg); }
    100% { opacity: 0;   transform: translate(-50%, calc(-50% - 30px)) scale(1.15) rotate(var(--jm-sr, 35deg)); }
}
@media (prefers-reduced-motion: reduce) {
    .jm-star { display: none; }
}
.jm-hero .jm-moon::after {   /* 月面暗斑 */
    content: ""; position: absolute; left: 18px; top: 30px;
    width: 16px; height: 16px; border-radius: 50%;
    background: rgba(190, 165, 115, .38);
    box-shadow: 26px -12px 0 -3px rgba(190, 165, 115, .30),
                12px 20px 0 -6px rgba(190, 165, 115, .26);
}
.jm-hero-inner { position: relative; z-index: 1; }
.jm-hero-kicker {
    font-size: 13px; letter-spacing: 6px;
    color: rgba(233, 217, 174, .95);
    margin-bottom: 14px;
}
.jm-hero-title {
    font-family: var(--jm-serif);
    font-size: clamp(34px, 6vw, 56px);
    letter-spacing: 14px;
    margin: 0 0 12px;
    color: var(--jm-gold);
    text-indent: 14px;        /* 抵消末字距，视觉居中 */
    text-shadow: 0 0 26px rgba(212, 180, 106, .35);
}
.jm-hero-sub {
    font-size: 15px; letter-spacing: 3px;
    color: rgba(244, 239, 226, .8);
    margin-bottom: 30px;
}
.jm-hero-sub::before, .jm-hero-sub::after {
    content: "✦"; color: rgba(212, 180, 106, .8);
    margin: 0 12px; font-size: 12px; vertical-align: 2px;
}

/* 搜索框 */
.jm-search {
    display: flex; max-width: 560px; margin: 0 auto 16px;
    background: rgba(10, 13, 28, .65);
    border: 1px solid var(--jm-line);
    border-radius: 999px;
    padding: 5px 6px 5px 22px;
    box-shadow: 0 6px 26px rgba(0, 0, 0, .35);
}
.jm-search input {
    flex: 1; min-width: 0; border: 0; outline: none;
    background: transparent; color: var(--jm-moon);
    font-size: 15px; height: 36px;
}
.jm-search input::placeholder { color: rgba(244, 239, 226, .5); }
.jm-search button {
    flex: none; border: 0; cursor: pointer;
    height: 38px; padding: 0 26px; border-radius: 999px;
    background: linear-gradient(135deg, #e2c98c, var(--jm-gold));
    color: var(--jm-night); font-size: 15px; font-weight: 600; letter-spacing: 2px;
}
.jm-search button:hover { filter: brightness(1.06); }
.jm-hotwords {
    font-size: 13px; color: rgba(244, 239, 226, .55);
}
.jm-hotwords a {
    display: inline-block; margin: 0 5px; padding: 2px 10px;
    border: 1px solid rgba(212, 180, 106, .45); border-radius: 999px;
    background: rgba(212, 180, 106, .12);
    color: #f2e6c4; font-size: 12.5px;
}
.jm-hotwords a:hover {
    background: rgba(212, 180, 106, .16);
    border-color: var(--jm-gold);
}

/* 分类卡 */
.jm-cats { padding: 42px 0 8px; }
.jm-sec-head {
    display: flex; align-items: baseline; gap: 14px;
    margin-bottom: 20px;
}
.jm-sec-head h2 {
    font-family: var(--jm-serif); font-size: 21px; letter-spacing: 4px;
    color: var(--jm-gold); margin: 0; font-weight: 600;
    white-space: nowrap;
}
.jm-sec-head .jm-sec-en {
    font-size: 11px; letter-spacing: 3px;
    color: rgba(212, 180, 106, .5); text-transform: uppercase;
}
.jm-sec-head .jm-sec-more {
    margin-left: auto; font-size: 13px;
    color: rgba(233, 217, 174, .7);
}
.jm-sec-head .jm-sec-more:hover { color: var(--jm-gold-2); }
.jm-sec-rule {
    height: 1px; margin: 0 0 22px;
    background: linear-gradient(90deg, var(--jm-gold) 0%, rgba(212,180,106,.08) 70%, transparent);
    opacity: .45;
}
.jm-cat-grid {
    display: grid; gap: 14px;
    grid-template-columns: repeat(6, 1fr);
}
.jm-cat {
    display: block; padding: 18px 12px 15px; text-align: center;
    background: linear-gradient(180deg, rgba(35, 44, 84, .55), rgba(27, 35, 68, .35));
    border: 1px solid rgba(212, 180, 106, .22);
    border-radius: 6px;
    transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.jm-cat:hover {
    transform: translateY(-3px);
    border-color: var(--jm-gold);
    background: linear-gradient(180deg, rgba(43, 53, 102, .8), rgba(30, 42, 85, .6));
}
.jm-cat .no {
    display: block; font-size: 11px; letter-spacing: 2px;
    color: rgba(212, 180, 106, .55); margin-bottom: 7px;
}
.jm-cat .nm {
    display: block; font-family: var(--jm-serif);
    font-size: 19px; color: var(--jm-moon); letter-spacing: 2px;
}
.jm-cat .en {
    display: block; margin-top: 6px; font-size: 10.5px;
    letter-spacing: 1px; color: rgba(244, 239, 226, .38);
    text-transform: uppercase;
}

/* 文章板块 */
.jm-secs { padding: 34px 0 10px; }
.jm-art-card {
    background: rgba(244, 239, 226, .045);
    border: 1px solid rgba(212, 180, 106, .14);
    border-radius: 8px;
    padding: 20px 22px 14px;
    margin-bottom: 26px;
}
.jm-art-list {
    list-style: none; margin: 0; padding: 0;
    display: grid; grid-template-columns: 1fr 1fr; gap: 4px 34px;
}
.jm-art-list li {
    min-width: 0;
    border-bottom: 1px dashed rgba(212, 180, 106, .14);
}
.jm-art-list a {
    display: block; padding: 9px 2px 9px 18px;
    font-size: 14.5px; color: rgba(244, 239, 226, .93);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    position: relative;
}
.jm-art-list a::before {
    content: "☾"; position: absolute; left: 0; top: 9px;
    font-size: 12px; color: var(--jm-gold);
    margin-right: 4px;
}
.jm-art-list a:hover { color: var(--jm-gold-2); }
.jm-art-list a .dt {
    float: right; font-size: 12px;
    color: rgba(244, 239, 226, .32); margin-left: 10px;
}

/* 中段禅语横带 */
.jm-quote {
    margin: 26px 0 40px; padding: 26px 20px;
    text-align: center;
    border-top: 1px solid var(--jm-line);
    border-bottom: 1px solid var(--jm-line);
    background:
        radial-gradient(700px 120px at 50% 0%, rgba(212,180,106,.07), transparent 70%),
        var(--jm-night);
}
.jm-quote p {
    margin: 0; font-family: var(--jm-serif);
    font-size: 16px; letter-spacing: 5px;
    color: rgba(233, 217, 174, .8);
}
.jm-quote .src {
    margin-top: 8px; font-size: 12px;
    letter-spacing: 2px; color: rgba(212, 180, 106, .5);
}

/* 页脚 */
.jm-footer {
    margin-top: 30px;
    background: #0c1024;
    border-top: 1px solid var(--jm-line);
    padding: 26px 0 30px; text-align: center;
}
.jm-footer .links { margin: 0 0 10px; font-size: 13px; }
.jm-footer .links a {
    color: rgba(244, 239, 226, .55); margin: 0 7px;
}
.jm-footer .links a:hover { color: var(--jm-gold-2); }
.jm-footer .copy {
    font-size: 12px; color: rgba(244, 239, 226, .3); letter-spacing: 1px;
}

/* ============ 二、子页统一顶部（列表/详情/搜索与首页共用 topnav+hero） ============ */

/* 紧凑 hero：子页面标题小一号、留白收紧（jm-hero--compact） */
.jm-hero.jm-hero--compact { padding: 42px 0 34px; }
.jm-hero--compact .jm-hero-title {
    font-size: clamp(22px, 3.2vw, 32px);
    letter-spacing: 3px; text-indent: 3px;
    line-height: 1.5; max-width: 26em;
    margin: 0 auto 10px;
}
.jm-hero--compact .jm-hero-sub { margin-bottom: 20px; font-size: 14px; }
.jm-hero--compact .jm-moon { width: 52px; height: 52px; top: 26px; }

/* hero 面包屑（子页传入 jm_crumb 时替代眉题） */
.jm-hero-crumb {
    font-size: 13px; color: rgba(233, 217, 174, .85);
    margin-bottom: 12px;
}
.jm-hero-crumb a { color: rgba(244, 239, 226, .72); }
.jm-hero-crumb a:hover { color: var(--jm-gold-2); }

/* hero 在 siteheader 块内、zen-main 之前：收紧主区上留白让夜色顶贴住内容 */
.jm-hero ~ .zen-main { padding-top: 18px; }

/* 正文区夜色化（2026-09-01 三轮：列表/详情/搜索与首页同底色，body.jm-sub） */
body.jm-sub {
    background: var(--jm-night);
    min-height: 100vh;
}

/* 宣纸卡换夜色半透卡（同首页 jm-art-card 质感） */
body.jm-sub .jm-paper {
    background: rgba(244, 239, 226, .045);
    border: 1px solid rgba(212, 180, 106, .22);
    box-shadow: none;
}
body.jm-sub .jm-count { color: rgba(244, 239, 226, .55); }
body.jm-sub .jm-count b { color: var(--jm-gold-2); }
body.jm-sub .jm-empty { color: rgba(244, 239, 226, .5); }

/* 列表行 */
body.jm-sub .jm-row-list li { border-bottom: 1px dashed rgba(212, 180, 106, .16); }
body.jm-sub .jm-row-list .t { color: rgba(244, 239, 226, .9); }
body.jm-sub .jm-row-list .t::before { color: var(--jm-gold); }
body.jm-sub .jm-row-list .d { color: rgba(244, 239, 226, .35); }
body.jm-sub .jm-row-list .sum { color: rgba(244, 239, 226, .5); }
/* 行 hover 荧光特效：金色洗底 + 标题/月牙辉光 + 摘要提亮 */
body.jm-sub .jm-row-list a.jm-row {
    border-radius: 8px;
    transition: background .18s ease, box-shadow .18s ease;
}
body.jm-sub .jm-row-list a.jm-row:hover {
    background: rgba(212, 180, 106, .09);
    box-shadow: 0 0 18px rgba(212, 180, 106, .14), inset 0 0 22px rgba(212, 180, 106, .05);
}
body.jm-sub .jm-row-list a.jm-row:hover .t {
    color: var(--jm-gold-2);
    text-shadow: 0 0 12px rgba(233, 217, 174, .6);
}
body.jm-sub .jm-row-list a.jm-row:hover .t::before {
    color: #f4e7c0;
    text-shadow: 0 0 10px rgba(240, 226, 186, .9);
}
body.jm-sub .jm-row-list a.jm-row:hover .sum { color: rgba(244, 239, 226, .62); }

/* 分页 */
body.jm-sub .jm-pager { color: rgba(244, 239, 226, .55); }
body.jm-sub .jm-pager a {
    color: var(--jm-gold-2); background: rgba(244, 239, 226, .05);
    border-color: rgba(212, 180, 106, .3);
}
body.jm-sub .jm-pager a:hover {
    border-color: var(--jm-gold); background: rgba(212, 180, 106, .15); color: var(--jm-gold-2);
}

/* 正文长文（详情页）：月白文字 + 鎏金强调；源站遗留内联色统一中和防深底不可读 */
body.jm-sub .jm-art-body { color: rgba(244, 239, 226, .88); }
body.jm-sub .jm-art-body p { color: inherit; }
body.jm-sub .jm-art-body a { color: var(--jm-gold-2); }
body.jm-sub .jm-art-body strong { color: var(--jm-gold-2); }
body.jm-sub .jm-art-body h2, body.jm-sub .jm-art-body h3, body.jm-sub .jm-art-body h4 {
    color: var(--jm-gold-2);
}
body.jm-sub .jm-art-body [style*="color"] { color: inherit !important; }
body.jm-sub .jm-art-body font { color: inherit !important; }
body.jm-sub .jm-art-body table { background: rgba(10, 13, 28, .5); }
body.jm-sub .jm-art-body table td, body.jm-sub .jm-art-body table th {
    border-color: rgba(212, 180, 106, .25);
}
body.jm-sub .jm-art-body table th { background: rgba(212, 180, 106, .12); }

/* 侧栏盒（大家还在搜 / 相关梦境） */
body.jm-sub .jm-side-box {
    background: rgba(244, 239, 226, .03);
    border: 1px solid rgba(212, 180, 106, .18);
    border-top: 2px solid var(--jm-gold);
    border-radius: 0 0 8px 8px;
}
body.jm-sub .jm-side-box h3 { color: var(--jm-gold-2); }
body.jm-sub .jm-side-box ul li { border-bottom: 1px dashed rgba(212, 180, 106, .15); }
body.jm-sub .jm-side-box ul a { color: rgba(244, 239, 226, .85); }
body.jm-sub .jm-side-box ul a:hover { color: var(--jm-gold-2); }
body.jm-sub .jm-side-box .jm-tags a {
    color: var(--jm-gold-2); background: rgba(212, 180, 106, .1);
    border-color: rgba(212, 180, 106, .35);
}
body.jm-sub .jm-side-box .jm-tags a:hover {
    border-color: var(--jm-gold); background: rgba(212, 180, 106, .2);
}

/* 页脚夜色化（覆盖 zen.css 浅色页脚） */
body.jm-sub .zen-footer {
    background: #0c1024;
    border-top: 1px solid var(--jm-line);
    color: rgba(244, 239, 226, .32);
}
body.jm-sub .zen-footer p { color: rgba(244, 239, 226, .32); }
body.jm-sub .zen-footer .zen-footer-links a { color: rgba(244, 239, 226, .55); }
body.jm-sub .zen-footer .zen-footer-links a:hover { color: var(--jm-gold-2); }

/* 宣纸正文区 */
.jm-paper {
    background: var(--jm-paper);
    border: 1px solid #e5dcc6;
    border-radius: 8px;
    box-shadow: 0 8px 30px rgba(20, 26, 51, .10);
    padding: 26px 28px 22px;
    margin-top: 24px;
}
.jm-paper h1.jm-art-title {
    font-family: var(--jm-serif);
    font-size: 25px; line-height: 1.45; color: var(--jm-ink);
    margin: 0 0 10px; letter-spacing: 1px;
}
.jm-art-meta {
    font-size: 12.5px; color: var(--jm-ink-2);
    border-bottom: 1px dashed #d8cdb2; padding-bottom: 12px; margin-bottom: 18px;
}
.jm-art-meta .views { color: #9a7b3f; }

/* 正文（源站 HTML 兜底排版）；限宽居中利于长文阅读 */
.jm-art-body {
    font-size: 16px; line-height: 1.95; color: var(--jm-ink);
    word-break: break-word;
    max-width: 800px; margin: 0 auto;
}
.jm-art-body p { margin: 0 0 14px; }
/* 老源站正文多为 div+<br> 堆叠（无 <p>）：div 也给段落间距，避免字墙 */
.jm-art-body div { margin: 0 0 14px; }
/* 带内联布局的 div 中和浮动/定宽（老站装饰性 float 布局），仅命中 [style] 不碰干净结构 */
.jm-art-body div[style] {
    float: none !important; width: auto !important; height: auto !important;
}
.jm-art-body img { max-width: 100%; height: auto; }
.jm-art-body table {
    width: 100%; border-collapse: collapse; margin: 14px 0;
    font-size: 14.5px; background: #fff;
}
.jm-art-body table td, .jm-art-body table th {
    border: 1px solid #e2d9c2; padding: 8px 12px; vertical-align: top;
}
.jm-art-body table th { background: var(--jm-paper-deep); }
.jm-art-body strong { color: #7c5c22; }
.jm-art-body h2, .jm-art-body h3, .jm-art-body h4 {
    font-family: var(--jm-serif); color: #5a4a20;
    margin: 20px 0 10px; font-size: 18px;
}

/* 列表行 */
.jm-row-list { list-style: none; margin: 0; padding: 0; }
.jm-row-list li {
    border-bottom: 1px dashed #ddd2b6;
}
.jm-row-list li:last-child { border-bottom: 0; }
.jm-row-list a.jm-row {
    display: flex; align-items: baseline; gap: 12px;
    padding: 14px 4px;
}
.jm-row-list a.jm-row:hover .t { color: #8a5d1f; }
.jm-row-list .t {
    flex: 1; min-width: 0; font-size: 15.5px; color: var(--jm-ink);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.jm-row-list .t::before {
    content: "☾"; color: #b99a55; font-size: 12px; margin-right: 9px;
}
.jm-row-list .d {
    flex: none; font-size: 12.5px; color: #a89f8c;
}
.jm-row-list .sum {
    flex-basis: 100%; font-size: 13px; color: var(--jm-ink-2);
    line-height: 1.7; margin: -4px 0 6px 22px;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
    overflow: hidden;
}

/* 分页 */
.jm-pager {
    display: flex; align-items: center; gap: 10px;
    margin-top: 18px; font-size: 13.5px; color: var(--jm-ink-2);
}
.jm-pager a {
    padding: 5px 14px; border: 1px solid #d8cdb2; border-radius: 4px;
    color: #7c6a3e; background: #fff;
}
.jm-pager a:hover { border-color: #b99a55; color: #8a5d1f; }

/* 搜索结果计数 / 空态 */
.jm-count {
    font-size: 13px; color: var(--jm-ink-2); margin-bottom: 6px;
}
.jm-count b { color: #8a5d1f; }
.jm-empty {
    padding: 40px 10px; text-align: center; color: var(--jm-ink-2);
    font-size: 14px; letter-spacing: 1px;
}

/* 相关梦境 + 大家还在搜 */
.jm-side-box {
    margin-top: 26px; border-top: 2px solid #b99a55;
    background: #fffdf7; border: 1px solid #e5dcc6; border-top: 2px solid #b99a55;
    border-radius: 0 0 8px 8px; padding: 16px 20px 12px;
}
.jm-side-box h3 {
    margin: 0 0 10px; font-size: 15.5px; color: #6b5726;
    letter-spacing: 2px; font-weight: 600;
}
.jm-side-box ul { list-style: none; margin: 0; padding: 0; }
.jm-side-box ul li {
    border-bottom: 1px dashed #e5dcc6;
}
.jm-side-box ul li:last-child { border-bottom: 0; }
.jm-side-box ul a {
    display: block; padding: 8px 2px; font-size: 14px; color: var(--jm-ink);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.jm-side-box ul a:hover { color: #8a5d1f; }
.jm-tags {
    display: flex; flex-wrap: wrap; gap: 8px;
}
.jm-tags a {
    padding: 4px 13px; font-size: 13px; border-radius: 999px;
    border: 1px solid #d8cdb2; color: #6b5726; background: #fff;
}
.jm-tags a:hover { border-color: #b99a55; color: #8a5d1f; background: var(--jm-paper-deep); }

/* ============ 三、响应式 ============ */

@media (max-width: 900px) {
    .jm-cat-grid { grid-template-columns: repeat(4, 1fr); }
    .jm-hero { padding: 54px 0 46px; }
    .jm-hero .jm-moon { width: 56px; height: 56px; top: 30px; right: 9%; }
    .jm-hero-title { letter-spacing: 9px; text-indent: 9px; }
}
@media (max-width: 768px) {
    .jm-cat-grid { grid-template-columns: repeat(3, 1fr); gap: 10px; }
    .jm-sec-head .jm-sec-en { display: none; }
    .jm-sec-head h2 { letter-spacing: 3px; }
    .jm-art-list { grid-template-columns: 1fr; gap: 0; }
    .jm-paper { padding: 18px 16px 16px; }
    .jm-art-body { font-size: 15.5px; }
    .jm-row-list a.jm-row { flex-wrap: wrap; }
    .jm-hero-sub { letter-spacing: 1.5px; padding: 0 14px; }
    .jm-hero .jm-moon { display: none; }
    .jm-hero--compact { padding: 30px 0 26px; }
    .jm-hero--compact .jm-hero-title { letter-spacing: 1px; text-indent: 1px; font-size: clamp(19px, 5vw, 24px); }
}
@media (max-width: 420px) {
    .jm-cat-grid { grid-template-columns: repeat(2, 1fr); }
    .jm-cat .nm { font-size: 17px; }
}
