/* GG_CHANNEL 风格主题（自绘简化版） */
* { box-sizing: border-box; }
body {
  margin: 0; background: #f3f4f5; color: #3d4247;
  font-family: "Helvetica", "游ゴシック", YuGothic, "Hiragino Kaku Gothic ProN",
               "Meiryo", "Microsoft YaHei", sans-serif;
  line-height: 1.8;
}
a { color: #0a7a5c; text-decoration: none; }
a:hover { text-decoration: underline; }
.wrap { max-width: 1100px; margin: 0 auto; padding: 0 16px; }

/* 头部 */
.site-header { background: #46b450; color: #fff; }
.site-header .brand { padding: 18px 0 10px; font-size: 30px; font-weight: 800; letter-spacing: 1px; }
.site-header .brand a { color: #ffe94a; }
.site-nav ul { list-style: none; margin: 0; padding: 0 0 10px; display: flex; flex-wrap: wrap; gap: 4px 26px; }
.site-nav a { color: #fff; font-weight: 600; font-size: 14px; }
.site-nav .on a { border-bottom: 2px solid #ffe94a; padding-bottom: 2px; }

/* 布局 */
.layout { display: flex; gap: 22px; padding-top: 20px; padding-bottom: 40px; }
.main { flex: 1 1 auto; min-width: 0; background: #fff; border-radius: 8px; padding: 24px; }
.side { flex: 0 0 300px; }

/* 文章卡片 */
.card { border-bottom: 1px solid #eee; padding: 16px 0; }
.card:last-child { border-bottom: none; }
.card-title { font-size: 19px; margin: 0 0 6px; line-height: 1.5; }
.card-title a { color: #2a5db0; }
.card-meta { font-size: 12px; color: #98a0a6; margin-bottom: 6px; }
.chip { display: inline-block; background: #eef6ee; color: #3a8a44; border-radius: 10px;
        padding: 0 10px; margin-left: 6px; }
.card-excerpt { margin: 0; font-size: 14px; color: #666; }
.empty { color: #98a0a6; }

/* 文章页 */
.article h1 { font-size: 26px; line-height: 1.5; margin: 0 0 8px; }
.article .meta { color: #98a0a6; font-size: 13px; margin-bottom: 18px; }
.article .meta .byline { color: #6a737a; }
.article .body img { max-width: 100%; height: auto; }
.article .body h2 { font-size: 20px; border-left: 5px solid #46b450; padding-left: 10px; margin: 28px 0 10px; }
.article .source { background: #f6f8f7; border-radius: 6px; padding: 10px 14px; font-size: 13px; color: #666; }

/* 分类/标签页导语 */
.cat-intro { font-size: 14px; color: #666; background: #f6f8f7; border-radius: 6px;
             padding: 10px 14px; margin: 0 0 14px; }

/* 侧栏 */
.side-box { background: #fff; border-radius: 8px; padding: 16px 18px; margin-bottom: 18px; }
.side-box h3 { margin: -16px -18px 12px; background: #29abc0; color: #fff;
               font-size: 15px; padding: 10px 16px; border-radius: 8px 8px 0 0; }
.side-list { list-style: none; margin: 0; padding: 0; font-size: 14px; }
.side-list li { padding: 4px 0; border-bottom: 1px dotted #eee; }
.side-list .cnt { color: #aaa; font-size: 12px; }
.tagline { font-size: 13px; color: #555; margin: 0; }

/* 分页 */
.pager ul { list-style: none; display: flex; gap: 6px; padding: 18px 0 0; }
.pager a, .pager .cur { display: inline-block; min-width: 34px; text-align: center;
  padding: 4px 8px; border-radius: 4px; border: 1px solid #ddd; background: #fff; }
.pager .cur { background: #46b450; color: #fff; border-color: #46b450; }

/* 页脚 */
.site-footer { background: #333; color: #aaa; padding: 18px 0; font-size: 13px; text-align: center; }

/* ---- 管理后台 ---- */
.admin-body { background: #eef0f2; }
.admin-top { background: #2c3e50; color: #fff; }
.admin-top .wrap { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; }
.admin-top a { color: #cfe3ff; margin-left: 14px; font-size: 14px; }
.admin-top .who { color: #9fb3c8; font-size: 13px; }
.admin-main { max-width: 1100px; margin: 24px auto; padding: 0 16px; }
.panel { background: #fff; border-radius: 8px; padding: 20px 22px; margin-bottom: 20px; }
.panel h2 { margin: 0 0 14px; font-size: 18px; }
table.tbl { width: 100%; border-collapse: collapse; font-size: 14px; }
table.tbl th, table.tbl td { border-bottom: 1px solid #edeff1; padding: 8px 6px; text-align: left; }
table.tbl th { color: #8a939b; font-weight: 600; }
.badge { display: inline-block; border-radius: 10px; font-size: 12px; padding: 0 10px; }
.badge.pending   { background: #fff4dd; color: #a2701c; }
.badge.published { background: #e2f5e4; color: #2e7d32; }
.badge.trash     { background: #f3d9d9; color: #a13a3a; }
.badge.quarantine{ background: #eee; color: #666; }
input[type=text], input[type=password], textarea, select {
  width: 100%; padding: 8px 10px; border: 1px solid #ccd2d7; border-radius: 5px; font-size: 14px;
}
.btn { display: inline-block; border: none; border-radius: 5px; padding: 8px 18px;
       background: #46b450; color: #fff; font-size: 14px; cursor: pointer; }
.btn.gray { background: #8a939b; }
.btn.red  { background: #c05046; }
.msg { background: #e2f5e4; color: #2e7d32; border-radius: 5px; padding: 8px 12px; margin-bottom: 14px; }
.err { background: #f3d9d9; color: #a13a3a; border-radius: 5px; padding: 8px 12px; margin-bottom: 14px; }
.form-row { margin-bottom: 12px; }
.form-row label { display: block; font-size: 13px; color: #666; margin-bottom: 4px; }
.stat-grid { display: flex; gap: 14px; flex-wrap: wrap; }
.stat-box { flex: 1; min-width: 120px; background: #f6f8f7; border-radius: 8px; padding: 14px; text-align: center; }
.stat-box .n { font-size: 26px; font-weight: 700; color: #2c3e50; }
.stat-box .t { font-size: 12px; color: #8a939b; }
code.token { background: #f0f3f5; padding: 2px 8px; border-radius: 4px; word-break: break-all; }

/* category 页大标题 */
.page-h1 { font-size: 22px; margin: 0 0 16px; }

/* FAQ 区块（GEO 可见内容） */
.faq { margin-top: 28px; padding-top: 16px; border-top: 1px solid #e5e7eb; }
.faq h2 { font-size: 19px; margin: 0 0 12px; }
.faq h3 { font-size: 15px; margin: 14px 0 6px; }
.faq p { margin: 0 0 10px; color: #374151; }

/* 面包屑 / 関連記事 / 视觉隐藏 H1（SEO/GEO） */
.visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px;
                   overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.crumbs { font-size: 12px; color: #8a939b; margin-bottom: 10px; }
.crumbs a { color: #46b450; text-decoration: none; }
.crumbs a:hover { text-decoration: underline; }
.related { border-top: 1px solid #e5e9e7; margin-top: 26px; padding-top: 18px; }
.related h2 { font-size: 19px; margin: 0 0 12px; }
.related ul { margin: 0; padding: 0 0 0 18px; }
.related li { margin-bottom: 8px; font-size: 14px; }
.related a { color: #1a5d8f; text-decoration: none; }
.related a:hover { text-decoration: underline; }

/* 正文图片响应式（配合 srcset 缩略图）+ tag chips */
.body img { max-width: 100%; height: auto; }
.ptags { margin: 20px 0 4px; }
.tag-chip { display: inline-block; background: #eef5ef; color: #2e7d32; border-radius: 999px;
            padding: 3px 12px; font-size: 12px; margin: 0 6px 6px 0; text-decoration: none; }
.tag-chip:hover { background: #ddeee0; }

/* 站内搜索框（头部 / 404 / 搜索页） */
.hdr-search { display: flex; gap: 6px; margin-top: 10px; }
.hdr-search input[type="search"] { flex: 1; border: 1px solid #cfd8d3; border-radius: 5px;
                                   padding: 6px 10px; font-size: 13px; }
.hdr-search button { border: none; border-radius: 5px; background: #2e7d32; color: #fff;
                     padding: 6px 14px; font-size: 13px; cursor: pointer; }
.page-search { margin: 0 0 16px; max-width: 480px; }
.search-count { font-size: 13px; color: #666; margin: 0 0 12px; }

