.header_search{display: block !important;}
p{margin: 0}
.left{width:900px; float: left;}
.right{width:285px;margin: 0;float: right;}

/* 嵌入 layout 时 main 内 .container 宽约 1176px，900+285 浮动会挤换行，侧栏掉到正文下；桌面用 flex 主栏自适应 */
/* 勿作用于 .main-download-layout：软件库详情也是 main>.container，误套 flex 会把 fixed 侧栏变成 flex 子项、整页错位 */
@media (min-width: 992px) {
    main.content:not(.main-download-layout) .container {
        display: flex;
        flex-wrap: nowrap;
        align-items: flex-start;
        gap: 15px;
        box-sizing: border-box;
    }
    /* Bootstrap .container::before/::after 在 flex 下仍是子项，gap 会在伪元素与 .left/.right 之间各多一道，详情页左右与顶栏不齐 */
    main.content:not(.main-download-layout) .container::before,
    main.content:not(.main-download-layout) .container::after {
        content: none !important;
        display: none !important;
    }
    main.content:not(.main-download-layout) .container > .left {
        float: none !important;
        width: auto !important;
        flex: 1 1 0;
        min-width: 0;
        max-width: none;
        box-sizing: border-box;
        display: flow-root;
        /* 抵消 index.css 曾有的全局 .left{position:fixed}，避免详情页误套后主栏脱离文档流 */
        position: static !important;
    }
    main.content:not(.main-download-layout) .container > .right {
        float: none !important;
        flex: 0 0 285px;
        width: 285px !important;
        max-width: 285px;
        margin-left: 0 !important;
        box-sizing: border-box;
    }
}
.content_title{padding: 18px 20px;background: linear-gradient(to bottom, #177739, #1a6b32);}
.where {color: #C7ECD4;font-size: 14px;}
.where a {color: #C7ECD4;font-size: 14px;}
.title{font-size: 24px;color: #FFFFFF}
.author{margin-top: 5px;}
.author p {margin: 0}
.author p img{width: 35px;border-radius: 20px;margin-right:10px; }
.author p span{margin-right: 20px;font-size: 12px;color: #D8D8D8}
.article_content{padding: 25px 20px;background-color: #fff}
.article_content img{max-width: 100%;}
.article_content {}
.content_content h1{font-size: 20px !important;}
.content_content h2{font-size: 18px !important;}
.content_content h3{font-size: 16px !important;}
.content_content h3{font-size: 16px !important;}

.content_content {font-size: 15px;color: #121212;word-wrap: break-word; }
.content_content p{font-size: 15px;color: #121212;line-height: 21px;}
.content_send{text-align: center;padding-bottom: 30px;margin-top: 30px;}
.content_send p{color: #9B9BA1;font-size: 14px;margin-bottom: 30px}
.content_send a{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:4px;background-color: #C7ECD4;border: 1px solid #177739;color: #177739;font-size: 14px;padding:8px 22px;line-height:1.25;font-weight:600; }
.content_send a .fa{font-size:15px;opacity:0.92;}
.content_send a:hover{background-color: #177739;border: 1px solid #177739;color: #fff;font-size: 14px;padding:8px 22px; }
.content_send a:hover .fa{color:#fff;}

.right_author{background-color: #fff}
.author_title{height: 53px; border-bottom: 1px solid #E7E8EB;position: relative;}
.author_title img {position: absolute;width: 35px;left:15px;top: 9px;border-radius: 20px;}
.author_title div {position: absolute;left:70px;top: 18.5px;font-weight: 600;color: #121212}
.author_content{padding: 10px 15px;}
.fm-author-stats{margin:0 0 6px;text-align:center;font-size:13px;color:#8a9099;line-height:1.5;}
.fm-author-stats__label{margin:0 2px 0 0;font-weight:600;color:#97a3b7;}
.fm-author-stats__num{font-weight:600;color:#121212;margin-right:2px;}
.fm-author-stats__num--muted{color:#b0b8c4;font-weight:600;}
.fm-author-stats__sep{margin:0 6px;color:#d6dbe3;font-weight:400;}
.fm-author-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin:16px 0 8px;}
.fm-author-action{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:4px;border:1px solid #177739;background:#C7ECD4;color:#177739;padding:8px 14px;font-size:14px;line-height:1.25;font-weight:600;box-sizing:border-box;text-decoration:none;cursor:pointer;transition:background .2s,color .2s,border-color .2s;}
.fm-author-action__ico{font-size:13px;line-height:1;opacity:0.95;}
.fm-author-action:hover{background:#177739;color:#fff;border-color:#177739;text-decoration:none;}
.fm-author-action:hover .fm-author-action__ico{color:#fff;}
/* 主操作：实心主色（与侧栏「点赞」选中态一致） */
.fm-author-action--primary{background:#177739;color:#fff;border-color:#177739;}
.fm-author-action--primary .fm-author-action__ico{color:#fff;}
.fm-author-action--primary:hover{background:#125a2d;border-color:#125a2d;color:#fff;}
.fm-author-action--secondary{background:#f5faf6;color:#177739;border-color:#b8d9c4;}
.fm-author-action--secondary:hover{background:#177739;border-color:#177739;color:#fff;}
/* 已关注：描边主色 + 浅底，与主按钮区分 */
.fm-author-action--following{background:#f0faf3;color:#177739;border-color:#177739;}
.fm-author-action--following .fm-author-action__ico{color:#177739;}
.fm-author-action--following:hover{background:#177739;color:#fff;border-color:#177739;}
.fm-author-action--following:hover .fm-author-action__ico{color:#fff;}
.fm-author-action--disabled{opacity:0.55;cursor:not-allowed;pointer-events:none;}
.fm-author-selftip{display:block;text-align:center;font-size:13px;color:#97a3b7;padding:8px 0;}
/* 已关注态（兼容旧类名） */
.author_on.fm-author-action,
.fm-author-action.author_on{border-color:#177739 !important;background:#177739 !important;color:#fff !important;}
.fm-author-action.author_on .fm-author-action__ico{color:#fff !important;}

.right_do{background-color: #fff;padding:18px 15px;margin-top:15px;}
.right_do > div:first-of-type{
    display:flex;
    justify-content:center;
    align-items:flex-start;
    gap:12px;
}
.do_list{float: none;width: 40px;padding-left:0 !important;text-align:center;}
.do_list div{width: 35px;height: 35px; border-radius:20px;border: 1px solid #177739;line-height: 35px;text-align: center;margin:0 auto;}
.do_list p{font-size: 14px;color: #999999;margin-top: 5px;padding-left: 0;width: 100%;text-align:center;}

.do_list_on div{background-color:#C7ECD4;color: #177739;}
.do_list_on p{color: #177739;}

.do_list:hover div{background-color:#C7ECD4;color: #177739;}
.do_list:hover p{color: #177739;}
.article_menu{
    margin-top: 15px;
    background-color: #fff;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    height: auto;
    min-height: 0;
    box-sizing: border-box;
}
.list_title{flex: 0 0 auto;padding:18px 15px; border-bottom: 1px solid #E7E8EB;font-size: 16px;color: #121212;font-weight: 600;line-height: 16px;}
.list_title div{border-left:2px solid #177739;height: 16px;line-height: 16px;padding-left: 10px;}           

.menu_contnet{
    padding: 0 3px;
    flex: 0 1 auto;
    min-height: 0;
    width: 100%;
    box-sizing: border-box;
    height: auto;
    max-height: min(500px, calc(100vh - 140px));
    overflow-x: hidden;
    overflow-y: auto;
}
.menu_contnet div{ color:rgba(0,0,0,0.6);;font-size: 14px;padding: 7px 25px;position: relative;}
.menu_contnet div i{position: absolute;left:0px;top: 12px;display: none;}
.article_on{color:#177739 !important; }
.article_on i{display:inline !important; }
.menu_contnet div:hover{background-color:#C7ECD4; }
.right_list{margin-top: 15px;background-color: #fff;border-radius: 3px;}
.index_ad{display: block;width: 285px;height: 153px;background-color: #fff;position: relative;border-radius: 3px;overflow: hidden;}
.right_list a.index_ad + a.index_ad{margin-top: 12px;}
.index_ad:hover{background-size:120% !important;transition: all 0.5s;}
.index_ad_close{color: #fff;position: absolute;right: 5px;bottom: 5px}
.index_ad_close span{padding:0 3px; margin-right: 5px;background: rgba(0,0,0,.5);border-radius: 2px; }

.tag_list{background: #f1f2f5;border-radius: 2px;padding: 2px 10px;font-size: 12px;color: #4b5b76;margin-right: 5px;}
.tag_list:hover{background-color:#C7ECD4;color:#177739}

.article_comment{margin-top: 15px;padding: 15px 20px;background-color: #fff;border-radius: 3px;}
.comment_title{border-bottom:1px solid #d6dbe3;padding-bottom:12px;font-size:18px; color: #181818}
.comment_content{margin-top: 15px;}
.user_img{float: left;width: 25px;}
.user_img img{width:24px;border-radius: 24px;}
.need_login{float: left; margin-left: 15px;width: calc(100% - 40px);max-width: 790px;box-sizing: border-box;text-align: center;padding: 32px 0;font-size: 13px;line-height:1.55;border:1px solid #d6dbe3;background-color: #f5f7fa;color: #97a3b7;}
.need_login a{color: #177739}
.textarea{width: calc(100% - 40px);max-width: 790px;box-sizing: border-box;float: left;margin-left: 15px;border:1px solid #d6dbe3;position:relative; }
.fm-comment-emoji-bar{position:relative;padding:6px 10px 4px;border-bottom:1px solid #eef0f3;background:#fafbfc;}
.fm-comment-emoji-btn{border:none;background:transparent;color:#5a6573;font-size:20px;line-height:1;padding:4px 8px;cursor:pointer;border-radius:4px;}
.fm-comment-emoji-btn:hover,.fm-comment-emoji-btn:focus{background:#eef0f3;color:#177739;outline:none;}
.fm-comment-emoji-panel{position:absolute;left:6px;top:100%;margin-top:4px;z-index:80;width:280px;max-height:220px;overflow-y:auto;background:#fff;border:1px solid #d6dbe3;border-radius:4px;box-shadow:0 10px 28px rgba(0,0,0,.12);padding:8px;box-sizing:border-box;display:none;flex-wrap:wrap;gap:4px;}
.fm-comment-emoji-panel.is-open{display:flex;}
.fm-comment-emoji-cell{flex:0 0 auto;width:32px;height:32px;border:none;border-radius:4px;background:#f3f5f8;font-size:18px;line-height:1;cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center;}
.fm-comment-emoji-cell:hover{background:#e3f4e8;}
.textarea textarea{padding: 10px;border: none;resize:none;margin-bottom: 45px;}
.textarea_button{position: absolute;right: 15px;bottom: 15px;display:inline-flex;align-items:center;justify-content:center;gap:6px;background-color: #177739;color: #fff;font-size: 14px;font-weight:600;line-height:1.25;padding:8px 18px;border:none;border-radius:4px;cursor:pointer; }
.textarea_button .fa{font-size:14px;opacity:0.95;}
.textarea_button:hover{background-color:#125a2d; }

.index_website{margin-top:15px;padding:15px 20px;background-color: #fff;border-radius: 3px;}
.index_website_title{border-bottom: 1px solid #F2F2F2;padding:14px 20px}
.index_website_title a{padding: 4px 8px;border: 1px solid #E7E8EB;font-size: 16px;margin-right: 5px;border-radius: 3px;}
.index_website_title a:hover{color:#177739 !important;font-weight: 600;border-color: #C7ECD4 !important; }

.navigate2{margin-left: 20px;}
.navigate3{margin-left: 40px;}
.navigate4{margin-left: 60px;}


.index_article_title{border-bottom: 1px solid #F2F2F2;padding:14px 0;}
.index_article_title a{padding: 4px 8px;border: 1px solid #E7E8EB;font-size: 16px;margin-right: 5px;border-radius: 3px}
.index_article_title a:hover{color:#177739 !important;font-weight: 600;border-color: #C7ECD4 !important; }
.website_title_more{float: right;border: none !important;color: #177739;font-size: 14px !important;margin-top: -5px}
.website_title_on{color:#177739;font-weight: 600;border-color: #C7ECD4 !important;}
.index_website_content{padding:0 20px 20px 20px;}

.index_website_content a{width: 120px;display: block;float: left;margin-top: 20px;margin-right: 18px;border-radius: 2px;}
.index_website_content a:hover{color: #177739;background-color: #C7ECD4;}
.index_website_content a img{width: 14px;margin-right: 10px;}

.index_article{}
.index_article h4{font-weight: 600;color: #121212;font-size:16px;line-height:1.4;margin:6px 0 4px;}
.index_article p{font-weight: normal;color: rgba(0, 0, 0, 0.66);font-size: 14px;line-height:1.55;}
.index_article_list{border-top: 1px solid #E7E8EB;display: block;padding:10px 0;}
.index_article_list p{margin:0;max-height:3.1em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.55;}
.index_article_list div{margin-top: 35px;}
.index_article_list div span i{margin-right:5px;}
.index_article div span{font-size: 12px;margin-right: 40px}
.index_article div .cate_name{float: right;background-color: #E7E8EB;padding:0 5px;margin-right: 0}

.index_article_list_on {background-color: #F3F3F3}
.index_article_list_on h4{font-weight: 600;color: #177739}
.index_article_list_on div .cate_name{float: right;background-color: #C7ECD4;padding:0 5px;color:#177739;}
.index_article_list_on div .countups{color:#177739;}
.index_article_list_0{border-top: none;}

.index_article_list:hover{}
.index_article_list:hover h4{font-weight: 600;color: #177739}
.index_article_list:hover div .cate_name{float: right;background-color: #C7ECD4;padding:0 5px;color:#177739;}
.index_article_list:hover div .countups{color:#177739;}


.layui-flow-more{text-align: center;}

.article_menu_fix{
    position: fixed;
    top: 60px;
    width: 285px;
    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100vh - 72px);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    box-sizing: border-box;
}
.article_menu_fix .menu_contnet {
    flex: 0 1 auto;
    min-height: 0;
    max-height: min(calc(100vh - 200px), 500px);
}
/* .right_list_fix 已弃用：与 .article_menu_fix 同时 fixed 会在侧栏中间留出大块视口空白 */

.article_title_fix{position: fixed;width: 900px;max-width: calc(100vw - 40px);box-sizing: border-box;height: 60px;line-height: 60px;font-size:24px;background-color:#fff ;z-index: 999999;top: 0;color: #121212;display: none;}


.layui-flow-more{text-align: center;padding-top: 15px;}
.comment_list{margin-top: 20px;}
/* 评论行：flex 横排，避免窄屏/沉浸式(800px)下 820px+25px 浮动换行导致「头像在上、昵称在下」与右侧溢出 */
.comment_content_list > .comment_content,
.article_comment > div > .comment_content {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 12px;
}
.comment_content_img{width: 25px;height: 25px; float: none; flex-shrink: 0;}
.comment_content_img img{width:25px;height: 25px;border-radius:20px;display:block;object-fit:cover;}
.comment_content_content{float: none;width: auto !important;flex: 1 1 auto;min-width: 0;margin-left: 0 !important;}
.comment_content_content p{font-size: 12px;margin: 0;}
.comment_content_content p:first-child{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;}
.comment_content_content p span{float: none !important;flex-shrink: 0;margin-left: auto;}
.pinglun{margin-top: 8px;word-break: break-word;}
.article_comment > div > .comment_content .user_img{float: none;flex-shrink: 0;}
.article_comment .textarea{float: none;width: auto !important;flex: 1 1 auto;min-width: 0;margin-left: 0 !important;max-width: 100%;box-sizing: border-box;}
.article_comment .need_login{float: none;width: auto !important;flex: 1 1 auto;min-width: 0;margin-left: 0 !important;max-width: 100%;box-sizing: border-box;}


input:focus{outline: none;}
textarea:focus{outline: none;}

/* 文章 paywall：正文顶部预览 + 底部渐变 + CTA（LOGO 主色 #177739） */
.fm-article-paywall {
    --fm-pay-brand: #177739;
    --fm-pay-brand-dark: #125a2d;
    --fm-pay-bg: #fff;
    position: relative;
    margin: 0 0 8px;
}
.fm-article-paywall-inner {
    position: relative;
}
.fm-article-paywall-mask {
    position: relative;
    max-height: 420px;
    overflow: hidden;
}
.fm-article-paywall-preview {
    overflow: hidden;
    word-wrap: break-word;
}
.fm-article-paywall-fade {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 168px;
    pointer-events: none;
    background: linear-gradient(
        to bottom,
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 255, 255, 0.72) 38%,
        var(--fm-pay-bg) 92%
    );
}
.fm-article-paywall-actions {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: -76px;
    padding: 0 16px 32px;
    position: relative;
    z-index: 2;
}
.fm-article-paywall-btn--ghost {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 24px;
    border: 1px solid var(--fm-pay-brand);
    color: var(--fm-pay-brand);
    background: rgba(255, 255, 255, 0.96);
    border-radius: 4px;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    box-shadow: 0 2px 14px rgba(23, 119, 57, 0.12);
    transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.fm-article-paywall-btn--ghost:hover {
    background: #f0faf3;
    color: var(--fm-pay-brand-dark);
    border-color: var(--fm-pay-brand-dark);
    text-decoration: none;
}
.fm-article-paywall-btn--ghost .fa {
    font-size: 18px;
    line-height: 1;
    opacity: 0.88;
}
/* 会员专享：正文区 .article_content 自带约 25px 顶内边距，整块上移约一半以贴近绿头 */
.fm-article-paywall--vip {
    margin-top: -12px;
}
/* inner / preview：角标与首行间距 */
.fm-article-paywall--vip .fm-article-paywall-inner {
    padding-top: 8px;
}
.fm-article-paywall--vip .fm-article-paywall-preview {
    padding-top: 28px;
}
.fm-article-paywall-ribbon {
    position: absolute;
    top: 0;
    right: 10px;
    z-index: 4;
    padding: 5px 12px;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: 0.02em;
    color: #fff;
    /* 与 LOGO 稻穗条、打赏主色同一金黄体系（:root --fm-reward-accent） */
    background: linear-gradient(120deg, #e8bc2a 0%, var(--fm-reward-accent, #d4a012) 48%, var(--fm-reward-accent-deep, #a67c00) 100%);
    border-radius: 4px;
    box-shadow: 0 2px 10px rgba(166, 124, 0, 0.35);
    text-shadow: 0 1px 0 rgba(61, 46, 8, 0.25);
}
.fm-article-paywall-pill {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 22px;
    border: 1px solid var(--fm-pay-brand);
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.98);
    color: var(--fm-pay-brand);
    font-weight: 600;
    font-size: 15px;
    text-decoration: none;
    box-shadow: 0 4px 22px rgba(23, 119, 57, 0.14);
    transition: background 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;
}
.fm-article-paywall-pill:hover {
    background: #f5faf6;
    color: var(--fm-pay-brand-dark);
    border-color: var(--fm-pay-brand-dark);
    text-decoration: none;
    box-shadow: 0 6px 26px rgba(23, 119, 57, 0.2);
}
.fm-article-paywall-pill-icon {
    font-size: 16px;
    opacity: 0.95;
}

/* 文章详情：目录项、沉浸式、工具栏 */
.do_list.fm-article-do { cursor: pointer; }
.fm-toc-empty { font-size: 13px; color: #999; padding: 10px 12px; line-height: 1.5; }
.menu_contnet .fm-toc-item {
    cursor: pointer;
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: normal;
    color: rgba(0, 0, 0, 0.66);
}
.menu_contnet .fm-toc-item:hover {
    background-color: #C7ECD4;
    color: #177739;
}
/* 当前章节 / 悬停：文字与竖线同 LOGO 主色 #177739；竖线与 .list_title 左缘对齐（15px − 目录区左 3px = 12px） */
/* 目录项 padding-left 由 details.html 生成：最小 24px = 12+2+10，保证竖线与标题间距 10px */
.menu_contnet .fm-toc-item.article_on {
    color: #177739 !important;
}
.menu_contnet .fm-toc-item:hover::before,
.menu_contnet .fm-toc-item.article_on::before {
    content: '';
    position: absolute;
    left: 12px;
    top: 7px;
    bottom: 7px;
    width: 2px;
    background-color: #177739;
    border-radius: 1px;
}
.article_menu.fm-toc-highlight { box-shadow: 0 0 0 2px #177739; transition: box-shadow 0.35s ease; }

body.fm-article-immersive .navbar-fixed-top { display: none !important; }
body.fm-article-immersive main#article_lists.content { padding-top: 56px !important; }
body.fm-article-immersive .container { display: block !important; width: 100% !important; max-width: 800px !important; margin-left: auto !important; margin-right: auto !important; float: none !important; }
body.fm-article-immersive .container .left { width: 100% !important; float: none !important; max-width: 100% !important; }
body.fm-article-immersive .container .right { display: none !important; }
body.fm-article-immersive .article_title_fix { display: none !important; }
/* 沉浸式：评论区内禁止横向溢出（固定 790px 输入框等） */
body.fm-article-immersive .article_comment {
    overflow-x: hidden;
    box-sizing: border-box;
    max-width: 100%;
}

.fm-immersive-exit {
    display: none;
    position: fixed;
    top: 12px;
    right: 16px;
    z-index: 10000000;
    padding: 8px 14px;
    border: none;
    border-radius: 4px;
    background: #177739;
    color: #fff;
    font-size: 14px;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}
body.fm-article-immersive .fm-immersive-exit { display: block !important; }

/* 文章打赏弹窗（主色与站标稻穗 LOGO 金黄一致） */
:root {
    --fm-reward-accent: #d4a012;
    --fm-reward-accent-deep: #a67c00;
    --fm-reward-accent-soft: #fff9e8;
    --fm-reward-border: #e8e8e8;
}

body.fm-reward-no-scroll { overflow: hidden; }

.fm-reward-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 10000002;
    background: rgba(0, 0, 0, 0.45);
    align-items: center;
    justify-content: center;
    padding: 20px;
    box-sizing: border-box;
}

.fm-reward-overlay.is-open {
    display: flex;
}

.fm-reward-dialog {
    position: relative;
    width: 100%;
    max-width: 400px;
    background: #fff;
    border-radius: 4px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15);
    padding: 28px 24px 22px;
    box-sizing: border-box;
}

.fm-reward-close {
    position: absolute;
    top: 12px;
    right: 14px;
    width: 32px;
    height: 32px;
    border: none;
    background: transparent;
    font-size: 22px;
    line-height: 1;
    color: #bbb;
    cursor: pointer;
    border-radius: 4px;
}

.fm-reward-close:hover {
    color: #666;
    background: #f5f5f5;
}

.fm-reward-head {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 22px;
    padding-right: 28px;
}

.fm-reward-avatar {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    border: 2px solid var(--fm-reward-accent-soft);
}

.fm-reward-head-text {
    font-size: 17px;
    font-weight: 600;
    color: #222;
    line-height: 1.35;
}

.fm-reward-coin {
    color: var(--fm-reward-accent);
    font-weight: 700;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6);
}

.fm-reward-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-bottom: 14px;
}

.fm-reward-amt {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 6px 10px;
    border: 2px solid var(--fm-reward-border);
    border-radius: 4px;
    background: #fafafa;
    cursor: pointer;
    font-size: 15px;
    color: #666;
    transition: border-color 0.2s, color 0.2s, background 0.2s;
}

.fm-reward-amt-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 1px;
    width: 100%;
    box-sizing: border-box;
}

.fm-reward-ico-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 25px;
    height: 25px;
    flex-shrink: 0;
}

.fm-reward-ico-img {
    display: block;
    width: 25px;
    height: 25px;
    max-width: 25px;
    max-height: 25px;
    object-fit: contain;
    vertical-align: middle;
}

.fm-reward-amt-num {
    flex-shrink: 0;
    font-style: italic;
    font-weight: 700;
    font-size: 23px;
    line-height: 1;
}

.fm-reward-amt:hover {
    border-color: #ccc;
    background: #fff;
}

.fm-reward-amt.selected {
    border-color: var(--fm-reward-accent);
    color: var(--fm-reward-accent-deep);
    background: var(--fm-reward-accent-soft);
}

.fm-reward-amt.selected .fm-reward-amt-num {
    color: var(--fm-reward-accent-deep);
}

.fm-reward-msg {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--fm-reward-border);
    border-radius: 4px;
    padding: 10px 12px;
    font-size: 14px;
    resize: none;
    margin-bottom: 16px;
    background: #f7f7f8;
    color: #333;
}

.fm-reward-msg::placeholder {
    color: #aaa;
}

.fm-reward-paylabel {
    text-align: center;
    font-size: 12px;
    color: #999;
    margin-bottom: 10px;
}

.fm-reward-payrow {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-bottom: 18px;
}

.fm-reward-payopt {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 48px;
    border: 2px solid var(--fm-reward-border);
    border-radius: 4px;
    background: #fafafa;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
    color: #555;
    transition: border-color 0.2s, background 0.2s;
}

.fm-reward-payopt.selected {
    border-color: var(--fm-reward-accent);
    background: var(--fm-reward-accent-soft);
    color: var(--fm-reward-accent-deep);
}

.fm-reward-wxico {
    color: #177739 !important;
    font-size: 20px;
}

.fm-reward-aliico {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 4px;
    background: #1677ff;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
}

.fm-reward-confirm {
    width: 100%;
    border: none;
    border-radius: 4px;
    padding: 12px 16px;
    font-size: 16px;
    font-weight: 700;
    color: #fff;
    background: linear-gradient(180deg, #e8bc2a 0%, var(--fm-reward-accent) 45%, #b8890a 100%);
    cursor: pointer;
    box-shadow: 0 4px 16px rgba(212, 160, 18, 0.45);
    transition: filter 0.2s, transform 0.1s, box-shadow 0.2s;
}

.fm-reward-confirm:hover {
    filter: brightness(1.06);
    box-shadow: 0 6px 20px rgba(212, 160, 18, 0.5);
}

.fm-reward-confirm:active {
    transform: scale(0.99);
}

/* 文章详情 / 课程详情：主栏 900 + 侧栏 285 在窄屏堆叠 */
@media (max-width: 991px) {
    main.content:not(.main-download-layout) .container {
        display: block !important;
    }
    main.content:not(.main-download-layout) .container > .left,
    main.content:not(.main-download-layout) .container > .right {
        flex: none !important;
    }
    .container > .left {
        width: 100% !important;
        max-width: 100% !important;
        float: none !important;
    }
    .container > .right {
        width: 100% !important;
        max-width: 100% !important;
        float: none !important;
        margin-top: 15px;
    }
    .article_title_fix {
        width: 100% !important;
        max-width: 100% !important;
        left: 0 !important;
        right: 0;
        padding-left: 12px;
        padding-right: 12px;
        box-sizing: border-box;
        font-size: 16px !important;
        line-height: 1.25 !important;
        height: auto !important;
        min-height: 48px;
        display: flex;
        align-items: center;
    }
    .content_title .title {
        font-size: 18px !important;
        line-height: 1.35 !important;
    }
    /* .right_do 内有一层 div 包裹全部 .do_list，flex 须加在包裹层上，否则子项会竖排占满宽 */
    .right_do {
        display: block;
        padding: 12px 8px;
        box-sizing: border-box;
    }
    .right_do > div:first-of-type {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: flex-start;
        justify-content: space-between;
        gap: 2px;
        width: 100%;
        box-sizing: border-box;
    }
    .right_do > div:first-of-type > .clear {
        display: none !important;
        width: 0 !important;
        height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    .right_do .do_list {
        float: none !important;
        flex: 1 1 0;
        min-width: 0;
        width: auto !important;
        max-width: none !important;
        padding-left: 0 !important;
        text-align: center;
        box-sizing: border-box;
    }
    .right_do .do_list > div {
        margin-left: auto;
        margin-right: auto;
    }
    .right_do .do_list p {
        padding-left: 0;
        width: 100%;
        max-width: 100%;
        font-size: 11px;
        line-height: 1.2;
        margin-top: 4px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    /* 窄屏禁用 fixed 目录：避免盖住正文、把字挤到右侧一条 */
    .article_menu.article_menu_fix {
        position: relative !important;
        top: auto !important;
        left: auto !important;
        right: auto !important;
        width: 100% !important;
        max-width: 100% !important;
        max-height: none !important;
        overflow: visible !important;
    }
    .article_menu .menu_contnet,
    .article_menu.article_menu_fix .menu_contnet {
        max-height: min(42vh, 320px);
        overflow-x: hidden;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* 下滑后：侧栏目录收起到底部抽屉，点「目录」展开/收起 */
    body.fm-mobile-toc-mode.fm-mobile-toc-scrolled #article_menu {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        margin-top: 0 !important;
        z-index: 9990;
        border-radius: 4px 4px 0 0;
        max-height: 0 !important;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        overflow: hidden;
        transition: max-height 0.3s ease, opacity 0.2s ease, visibility 0.2s;
        box-shadow: 0 -8px 28px rgba(0, 0, 0, 0.12);
        background: #fff;
    }
    body.fm-mobile-toc-mode.fm-mobile-toc-scrolled.fm-mobile-toc-open #article_menu {
        max-height: min(78vh, 620px) !important;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        overflow: hidden;
        display: flex !important;
        flex-direction: column !important;
    }
    body.fm-mobile-toc-mode.fm-mobile-toc-scrolled.fm-mobile-toc-open #article_menu .menu_contnet {
        flex: 1 1 auto;
        min-height: 0;
        max-height: none !important;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }
}

/* 文章/课程详情（本页加载 articles.css）：窄屏固定「回顶」高度，「目录」在其上方 20px */
@media (max-width: 991px) {
    .go_top {
        bottom: calc(20px + env(safe-area-inset-bottom, 0px)) !important;
        right: 20px;
        z-index: 9990;
    }
}

/* 移动端目录浮钮与遮罩（不放在断点内以便类名单独控制显示） */
.fm-article-toc-backdrop {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9989;
    background: rgba(0, 0, 0, 0.38);
    -webkit-tap-highlight-color: transparent;
}
.fm-article-toc-backdrop.is-open {
    display: block;
}
.fm-article-toc-fab {
    position: fixed;
    right: max(20px, env(safe-area-inset-right, 0px));
    /* 回顶按钮高 45px、距底 20px，再留 20px 间距：20 + 45 + 20 + safe-area */
    bottom: calc(85px + env(safe-area-inset-bottom, 0px));
    z-index: 9991;
    /* 与 .go_top 同宽同高 45×45 */
    width: 45px;
    height: 45px;
    padding: 0;
    margin: 0;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #177739;
    background: #fff;
    color: #177739;
    border-radius: 0;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: -0.02em;
    text-align: center;
    cursor: pointer;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12);
    -webkit-tap-highlight-color: transparent;
}
body.fm-article-immersive .fm-article-toc-backdrop,
body.fm-article-immersive .fm-article-toc-fab {
    display: none !important;
}

/* 2026 焕新版：文章详情阅读层级 */
.content_title,
.article_content,
.article_comment,
.right_author,
.right_do,
.article_menu,
.right_list,
.index_website {
    border-radius: 4px;
    overflow: hidden;
    border: 1px solid var(--fm-card-line, #eef1f4);
    box-shadow: var(--fm-card-shadow, 0 2px 10px rgba(15, 23, 42, 0.04));
}

.content_title {
    padding: 24px 24px 22px;
    background: linear-gradient(135deg, #177739 0%, #1f8a45 55%, #2d9b54 100%);
}

.where,
.where a {
    color: rgba(255, 255, 255, 0.76);
    font-size: 13px;
}

.title {
    margin-top: 10px;
    font-size: 30px;
    line-height: 1.35;
    font-weight: 700;
    color: #fff;
}

.author {
    margin-top: 14px;
}

.fm-article-author-top {
    display: flex;
    align-items: center;
    gap: 10px 14px;
}

.fm-article-author-top img {
    width: 40px;
    height: 40px;
    margin-right: 0;
    border: 2px solid rgba(255, 255, 255, 0.22);
    border-radius: 50%;
    flex: 0 0 auto;
}

.fm-article-author-name {
    min-width: 0;
    color: rgba(255, 255, 255, 0.92);
    font-weight: 600;
}

.fm-article-author-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 16px;
    margin-top: 8px;
}

.fm-article-author-meta span {
    color: rgba(255, 255, 255, 0.8);
}

.fm-article-mobile-follow-wrap {
    display: none;
}

.fm-article-mobile-follow {
    min-height: 32px;
    padding: 6px 12px;
    font-size: 13px;
}

.fm-article-mobile-follow-self {
    color: rgba(255, 255, 255, 0.78);
    padding: 6px 0 0;
}

.article_content {
    margin-top: 14px;
    padding: 30px 28px;
    background: #fff;
}

.content_content {
    font-size: 16px;
    line-height: 1.95;
    color: var(--fm-text, #1f2937);
}

.content_content p,
.content_content li,
.content_content blockquote {
    font-size: 16px;
    line-height: 1.95;
    color: var(--fm-text-soft, #4b5563);
}

.content_content h1,
.content_content h2,
.content_content h3,
.content_content h4 {
    margin-top: 1.65em;
    margin-bottom: 0.8em;
    color: var(--fm-text, #1f2937);
    font-weight: 700;
}

.content_content img {
    border-radius: 4px;
}

.tag_list {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 4px 12px;
    border-radius: 4px;
    background: #f5f7fb;
    color: #5b6577;
    margin-bottom: 8px;
}

.content_send {
    margin-top: 36px;
    padding-top: 0;
    border-top: 0;
}

.fm-article-bottom-bar {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
}

.fm-article-bottom-bar__reward-row,
.fm-article-bottom-bar__meta-row {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.fm-article-bottom-bar__meta-row {
    flex-wrap: wrap;
    gap: 12px 18px;
}

.content_send .fm-article-bottom-bar__reward,
.content_send .fm-article-bottom-bar__item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 38px;
    border-radius: 4px;
    text-decoration: none;
    transition: all .2s ease;
}

.content_send .fm-article-bottom-bar__reward {
    padding: 8px 22px;
    background: #c7ecd4;
    border: 1px solid #177739;
    color: #177739;
    font-size: 14px;
    font-weight: 600;
}

.content_send .fm-article-bottom-bar__reward:hover {
    background: #177739;
    border-color: #177739;
    color: #fff;
}

.content_send .fm-article-bottom-bar__item {
    padding: 6px 0;
    border: 0;
    background: transparent;
    color: #6b7280;
    font-size: 14px;
}

.content_send .fm-article-bottom-bar__item:hover,
.content_send .fm-article-bottom-bar__item.is-active {
    color: #177739;
}

.content_send .fm-article-bottom-bar__item--muted {
    color: #8b95a7;
    cursor: default;
}

.content_send .fm-article-bottom-bar__item .fa,
.content_send .fm-article-bottom-bar__reward .fa {
    font-size: 14px;
}

@media (max-width: 767px) {
    .content_send {
        margin-top: 28px;
    }

    .fm-article-bottom-bar {
        gap: 12px;
    }

    .fm-article-bottom-bar__meta-row {
        gap: 10px 14px;
        justify-content: flex-start;
    }

    .content_send .fm-article-bottom-bar__reward {
        padding: 8px 16px;
    }
}

.right_author,
.right_do,
.article_menu,
.right_list,
.index_website,
.article_comment {
    background: #fff;
}

.author_title,
.list_title,
.index_article_title,
.comment_title {
    background: linear-gradient(180deg, #ffffff 0%, #fbfcfd 100%);
}

.author_title,
.list_title {
    border-bottom: 1px solid var(--fm-card-line, #eef1f4);
}

.author_content {
    padding: 18px 18px 20px;
}

.fm-author-stats {
    margin-bottom: 10px;
}

.right_do {
    margin-top: 14px;
    padding: 18px 14px;
}

.do_list div {
    width: 42px;
    height: 42px;
    line-height: 42px;
    border-radius: 4px;
    border-color: #dce8df;
    background: #f8fbf9;
}

.do_list_on div,
.do_list:hover div {
    background-color: rgba(23, 119, 57, 0.1);
}

.do_list p {
    width: 42px;
    font-size: 12px;
}

.article_menu {
    margin-top: 14px;
}

.menu_contnet {
    padding: 8px 8px 10px;
}

.menu_contnet div {
    border-radius: 4px;
    padding-top: 10px;
    padding-bottom: 10px;
}

.article_comment {
    margin-top: 16px;
    padding: 20px 24px 22px;
}

.comment_title {
    font-size: 18px;
    font-weight: 700;
}

.comment_list .comment_title {
    margin-bottom: 14px;
}

.textarea {
    border-radius: 4px;
    overflow: hidden;
}

.textarea textarea {
    min-height: 150px;
    font-size: 14px;
    line-height: 1.8;
}

.need_login {
    border-radius: 4px;
}

.fm-reward-dialog {
    border-radius: 4px;
}

.article_title_fix {
    padding: 0 22px;
    border-bottom: 1px solid var(--fm-card-line, #eef1f4);
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.08);
}

@media (max-width: 991px) {
    .content_title {
        padding: 20px 18px;
        border-radius: 4px;
    }
    .title {
        font-size: 24px;
    }
    .article_content,
    .article_comment {
        padding: 22px 18px;
        border-radius: 4px;
    }
    .author {
        margin-top: 12px;
    }
    .fm-article-author-top {
        gap: 8px 10px;
    }
    .fm-article-author-top img {
        width: 34px;
        height: 34px;
    }
    .fm-article-author-name {
        flex: 1 1 auto;
        min-width: 0;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .fm-article-author-meta {
        gap: 6px 12px;
        margin-top: 10px;
    }
    .fm-article-author-meta span {
        margin-right: 0;
        font-size: 12px;
    }
    .fm-article-mobile-follow-wrap {
        display: flex;
        margin-left: auto;
        flex: 0 0 auto;
    }
    .fm-article-mobile-follow {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        white-space: nowrap;
        padding: 5px 10px;
        font-size: 12px;
    }
}