/* === LiMhy 博客系统 - 前台样式表 === */

/* --- 1. 全局颜色与基础设置 --- */
:root { 
    --bg-color: #fdfdfd; 
    --text-main: #000000; 
    --text-sec: #555555; 
    --accent: #000000; 
    --border-width: 2px; 
    --border-color: #000000; 
    --radius: 12px; 
    --card-shadow: 3px 3px 0px #000000; 
    --card-bg: #ffffff; 
    --surface-2: #f3f4f6; 
    --theme-ease: 260ms cubic-bezier(0.22, 1, 0.36, 1); 
    --font-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; 
    --font-serif: Georgia, "Times New Roman", Times, serif; 
    --container-width: 900px; 
    color-scheme: light; 
}

* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: var(--font-base); background-color: var(--bg-color); color: var(--text-main); line-height: 1.5; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
a { text-decoration: none; color: inherit; } 
img { max-width: 100%; display: block; } 
ul { list-style: none; } 
.container { max-width: var(--container-width); margin: 0 auto; padding: 0 16px; }

/* --- 2. 顶部导航栏 --- */
.site-header { padding: 12px 0; margin-bottom: 20px; background: var(--bg-color); position: sticky; top: 0; z-index: 100; border-bottom: 1px solid #eee; }
.header-inner { display: flex; align-items: center; justify-content: space-between; }
.site-logo { display: flex; align-items: center; gap: 10px; } 
.site-logo__img { width: 40px; height: 40px; border-radius: 50%; border: var(--border-width) solid var(--border-color); object-fit: cover; }
.site-logo__img--dark { display: none; }
[data-theme="dark"] .site-logo__img--light { display: none; }
[data-theme="dark"] .site-logo__img--dark { display: block; }
.site-logo span { font-weight: 800; font-size: 18px; letter-spacing: -0.5px; white-space: nowrap; }

/* 宽体 Logo 特殊样式 */
.site-logo.is-wide { gap: 0; }
.site-logo.is-wide .site-logo__img { width: auto; max-width: 180px; height: 40px; border-radius: 0; border: none; object-fit: contain; }
.site-logo.is-wide span { display: none; }
@media (max-width: 600px) {
    .site-logo.is-wide .site-logo__img { height: 32px; max-width: 140px; }
}

.site-nav { display: flex; gap: 20px; align-items: center; } 
.nav-link { font-size: 15px; font-weight: 700; position: relative; white-space: nowrap; } 
.nav-link:hover::after { content: ''; position: absolute; bottom: -4px; left: 0; width: 100%; height: 2px; background: var(--text-main); }
.menu-toggle { display: none; font-size: 20px; cursor: pointer; border: var(--border-width) solid var(--border-color); border-radius: 6px; width: 36px; height: 36px; align-items: center; justify-content: center; background: var(--bg-color); transition: all 0.1s; } 
.menu-toggle:active { transform: translate(2px, 2px); box-shadow: none; }

/* --- 3. 轮播图与文章列表 --- */
.banner-section { margin-bottom: 24px; } 
.banner-wrapper { border: var(--border-width) solid var(--border-color); border-radius: var(--radius); height: 240px; overflow: hidden; position: relative; background: var(--bg-color); box-shadow: var(--card-shadow); } 
.banner-slider { display: flex; height: 100%; transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1); } 
.banner-item { min-width: 100%; height: 100%; position: relative; } 
.banner-link-block { display: block; width: 100%; height: 100%; position: relative; color: inherit; -webkit-tap-highlight-color: transparent; } 
.banner-bg { position: absolute; inset: 0; z-index: 1; } .banner-bg img { width: 100%; height: 100%; object-fit: cover; } 
.banner-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0) 50%); z-index: 1; pointer-events: none; } 
.banner-content { position: absolute; bottom: 32px; left: 0; width: 100%; z-index: 2; text-align: center; padding: 0 16px; } 
.banner-title { font-size: 22px; font-weight: 900; margin: 0; color: #fff; text-shadow: 0 2px 4px rgba(0,0,0,0.8); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.3; } 
.banner-dots { position: absolute; bottom: 12px; left: 50%; transform: translateX(-50%); z-index: 3; display: flex; gap: 6px; } 
.dot { width: 24px; height: 5px; border-radius: 4px; background: rgba(255,255,255,0.4); cursor: pointer; transition: all 0.3s; border: none; box-shadow: 0 1px 2px rgba(0,0,0,0.3); } 
.dot.active { background: #fff; width: 36px; opacity: 1; }

.post-list { display: flex; flex-direction: column; gap: 16px; margin-bottom: 40px; } 
.post-card { display: flex; align-items: stretch; background: var(--bg-color); border: var(--border-width) solid var(--border-color); border-radius: var(--radius); padding: 12px; gap: 16px; position: relative; transition: transform 0.2s, box-shadow 0.2s, opacity 0.3s; overflow: hidden; will-change: transform, opacity; } 
.post-card:hover { transform: translate(-2px, -2px); box-shadow: var(--card-shadow); } 

@keyframes portalShimmer { 0% { background-position: -1000px 0; } 100% { background-position: 1000px 0; } }
.post-card.is-skeleton { pointer-events: none; transform: none !important; box-shadow: none !important; }
.post-card.is-skeleton .post-cover-img-box img { opacity: 0; }
.post-card.is-skeleton .post-cover-img-box { background: #f4f4f5; background-image: linear-gradient(90deg, #f4f4f5 25%, #e4e4e7 50%, #f4f4f5 75%); background-size: 1000px 100%; animation: portalShimmer 2s infinite linear; }
.post-card.is-skeleton .post-title a, .post-card.is-skeleton .post-excerpt, .post-card.is-skeleton .post-meta { color: transparent !important; background: #f4f4f5; background-image: linear-gradient(90deg, #f4f4f5 25%, #e4e4e7 50%, #f4f4f5 75%); background-size: 1000px 100%; animation: portalShimmer 2s infinite linear; border-radius: 4px; user-select: none; text-shadow: none; }
.post-card.is-skeleton .post-title a { display: inline-block; width: 75%; height: 22px; line-height: 22px; }
.post-card.is-skeleton .post-excerpt { display: block; width: 100%; height: 38px; }
.post-card.is-skeleton .post-meta { display: inline-block; width: 40%; height: 16px; margin-top: 4px; }
@keyframes portalSlideInRight { from { transform: translateX(30px); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
@keyframes portalSlideInLeft { from { transform: translateX(-30px); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
.post-card.anim-right { animation: portalSlideInRight 0.4s cubic-bezier(0.2, 0.8, 0.2, 1); }
.post-card.anim-left { animation: portalSlideInLeft 0.4s cubic-bezier(0.2, 0.8, 0.2, 1); }

.post-cover-art { flex-shrink: 0; width: 140px; height: 100px; position: relative; margin-left: 6px; align-self: center; } 
.post-cover-art::before { content: ''; position: absolute; inset: 0; border: var(--border-width) solid var(--border-color); border-radius: 8px; background: var(--bg-color); transform: rotate(-5deg); z-index: 0; } 
.post-cover-img-box { position: absolute; inset: 0; border: var(--border-width) solid var(--border-color); border-radius: 8px; overflow: hidden; background: #eee; z-index: 1; transform: rotate(3deg); transition: transform 0.3s; } 
.post-card:hover .post-cover-img-box { transform: rotate(0deg) scale(1.05); } 
.post-cover-img-box img { width: 100%; height: 100%; object-fit: cover; transition: opacity 0.2s; } 
.post-content { flex: 1; min-width: 0; display: flex; flex-direction: column; justify-content: center; } 
.post-title { font-size: 18px; font-weight: 900; margin-bottom: 6px; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--text-main); } 
.post-excerpt { font-size: 13px; color: var(--text-sec); line-height: 1.5; margin-bottom: 8px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; word-break: break-word; overflow-wrap: break-word; } 
.post-meta { font-size: 11px; font-weight: 700; color: var(--text-main); opacity: 0.6; }

/* --- 4. 文章详情页排版 --- */
.breadcrumb { font-size: 13px; font-weight: 700; margin-bottom: 20px; color: var(--text-sec); display: flex; align-items: center; gap: 6px; } 
.breadcrumb a:hover { color: var(--text-main); text-decoration: underline; } 
.post-detail { max-width: 800px; margin: 0 auto 40px; } 
.post-detail__header { text-align: center; margin-bottom: 20px; padding-bottom: 15px; border-bottom: 1px solid #eee; } 
.post-detail__title { font-size: 26px; font-weight: 900; line-height: 1.3; margin-bottom: 10px; color: var(--text-main); } 
.post-detail__meta { font-size: 13px; font-weight: 600; color: var(--text-sec); } 

.prose { font-size: 16px; line-height: 1.8; color: var(--text-main); overflow-wrap: break-word; }
.prose p { margin-bottom: 1.5em; text-align: justify; }
.prose ul, .prose ol { margin: 16px 0 24px; padding-left: 24px; }
.prose ul { list-style-type: disc; } 
.prose ol { list-style-type: decimal; } 
.prose li { margin-bottom: 8px; padding-left: 4px; }
.prose li::marker { font-weight: 800; color: var(--text-main); } 

.md-table-wrap { display: block; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 24px 0; border: 2px solid var(--border-color); border-radius: 8px; box-shadow: 3px 3px 0 rgba(0,0,0,0.1); }
.prose table { width: 100%; border-collapse: collapse; border-spacing: 0; font-size: 14px; min-width: 500px; }
.prose th, .prose td { padding: 12px 16px; border-bottom: 1px solid var(--border-color); text-align: left; vertical-align: top; }
.prose th { background-color: #f4f4f5; font-weight: 900; color: var(--text-main); border-bottom: 2px solid var(--border-color); white-space: nowrap; }
.prose tr:last-child td { border-bottom: none; }
.prose tr:nth-child(even) { background-color: #fafafa; } 
.prose tr:hover { background-color: #fffbeb; } 

.prose h2, .prose h3 { margin-top: 40px; margin-bottom: 20px; font-weight: 900; color: var(--text-main); line-height: 1.3; } 
.prose h2 { font-size: 24px; border-left: 6px solid var(--text-main); padding-left: 12px; } 
.prose h3 { font-size: 20px; display: flex; align-items: center; }
.prose h3::before { content: '#'; color: var(--text-sec); margin-right: 8px; font-weight: 400; }
.prose strong { font-weight: 900; color: var(--text-main); background: linear-gradient(120deg, transparent 60%, #fcd34d 60%); } 
.prose hr { border: 0; border-top: 2px dashed #ccc; margin: 40px 0; }
.prose blockquote { border-left: 4px solid var(--border-color); padding: 16px 20px; margin: 24px 0; font-style: normal; background: var(--bg-color); border-radius: 0 8px 8px 0; font-size: 15px; color: var(--text-sec); box-shadow: 2px 2px 0 #eee; }

.prose img { 
    border: 2px solid var(--border-color); 
    border-radius: 8px; 
    box-shadow: 4px 4px 0 rgba(0,0,0,0.15); 
    margin: 30px auto; 
    max-height: 70vh; 
    object-fit: contain; 
    cursor: zoom-in; 
    transition: transform 0.2s; 
    background: transparent;
}
.prose img:hover { transform: scale(1.01); }

.post-detail__footer { margin-top: 24px; padding-top: 16px; border-top: 1px solid #eee; } 
.tag-list { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 24px; } 
.tag-item { display:inline-flex; align-items:center; font-size: 12px; font-weight: 700; background: var(--surface-2); padding: 5px 10px; border-radius: 999px; border: 1px solid rgba(15,23,42,0.08); transition: background-color var(--theme-ease), color var(--theme-ease), border-color var(--theme-ease), transform .18s ease; color: var(--text-main); box-shadow: none; } 
.tag-item:hover { background: var(--text-main); color: var(--bg-color); border-color: var(--text-main); transform: translateY(-1px); } 
.post-nav { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 30px; } 
.post-nav__link { flex: 1; min-width: 0; border: 1px solid var(--border-color); border-radius: 8px; padding: 10px 12px; display: flex; flex-direction: column; justify-content: center; background: var(--bg-color); transition: all 0.2s; text-align: left; box-shadow: 2px 2px 0 #eee; overflow: hidden; } 
.post-nav__link:hover { box-shadow: 3px 3px 0 var(--border-color); transform: translate(-1px, -1px); } 
.post-nav__label { font-size: 10px; color: var(--text-sec); font-weight: 800; text-transform: uppercase; margin-bottom: 1px; } 
.post-nav__title { font-size: 13px; font-weight: 700; color: var(--text-main); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.4; display: block; width: 100%; }
.post-nav__link--next { text-align: right; align-items: flex-end; } .post-nav__placeholder { flex: 1; }

/* --- 5. 友情链接与评论区 --- */
.links-grid { display: grid; grid-template-columns: 1fr; gap: 20px; margin-top: 20px; } @media (min-width: 600px) { .links-grid { grid-template-columns: 1fr 1fr; } } 
.link-card { position: relative; display: flex; align-items: center; gap: 16px; background: var(--bg-color); border: 2px solid var(--border-color); border-radius: 12px; padding: 20px 16px; transition: transform 0.2s, box-shadow 0.2s; overflow: hidden; } 
.link-card:hover { transform: translate(-3px, -3px); box-shadow: 4px 4px 0 var(--border-color); } 
.link-status { position: absolute; top: 0; right: 0; background: #e0e0e0; color: #000; font-size: 11px; font-weight: 800; padding: 3px 10px; border-left: 2px solid var(--border-color); border-bottom: 2px solid var(--border-color); border-bottom-left-radius: 8px; z-index: 2; transition: background 0.3s; } 
.link-status.is-online { background: #ecfdf5; color: #166534; } .link-status.is-offline { background: #fef2f2; color: #991b1b; } 
.link-avatar { width: 64px; height: 64px; flex-shrink: 0; border-radius: 50%; border: 2px solid var(--border-color); object-fit: cover; background: #eee; } 
.link-info { flex: 1; min-width: 0; display: flex; flex-direction: column; justify-content: center; } 
.link-name { font-size: 18px; font-weight: 900; color: var(--text-main); margin-bottom: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } 
.link-desc { font-size: 13px; color: var(--text-sec); line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

.comments-section { margin-top: 30px; padding-top: 20px; border-top: none; } 
.comments-title { font-size: 22px; font-weight: 900; margin-bottom: 16px; color: var(--text-main); } 
.comment-form { margin-bottom: 0; } 
.comment-form-grid { display: grid; grid-template-columns: 1fr 1fr !important; gap: 8px; margin-bottom: 12px; } 
.comment-input-group { position: relative; } 
.sketch-input { width: 100%; padding: 10px 12px; font-size: 14px; font-weight: 700; color: var(--text-main); background: var(--bg-color); border: 2px solid var(--border-color); border-radius: 4px; outline: none; transition: box-shadow 0.2s; } 
.sketch-input:focus { box-shadow: 3px 3px 0 rgba(0,0,0,0.2); position: relative; z-index: 2; } 
.sketch-input::placeholder { color: #999; font-weight: 500; } 
.sketch-textarea { min-height: 120px; resize: vertical; } 
.comment-form-actions-bar { display: flex; justify-content: space-between; align-items: center; margin-top: 12px; gap: 10px; flex-wrap: wrap; } 
.captcha-area { display: flex; align-items: center; gap: 8px; } 
.captcha-group { display: flex; align-items: stretch; } 
.captcha-img { height: 42px; width: auto; border: 2px solid var(--border-color); border-right: none; border-radius: 4px 0 0 4px; cursor: pointer; background: var(--bg-color); flex-shrink: 0; } 
.captcha-img:hover { opacity: 0.8; } 
.captcha-input { width: 100px; height: 42px; text-align: center; letter-spacing: 1px; border-radius: 0 4px 4px 0; border: 2px solid var(--border-color); } 
.disclaimer-icon { position: relative; cursor: pointer; display: flex; align-items: center; } 
.disclaimer-symbol { width: 24px; height: 24px; border: 2px solid var(--border-color); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 900; font-family: serif; font-size: 14px; background: var(--bg-color); color: var(--text-main); transition: background 0.2s; } 
.disclaimer-icon:hover .disclaimer-symbol { background: var(--text-main); color: var(--bg-color); } 
.disclaimer-popup { display: none; position: absolute; bottom: 34px; left: 50%; transform: translateX(-50%); width: 260px; background: var(--bg-color); border: 2px solid var(--border-color); border-radius: 8px; padding: 12px; font-size: 12px; line-height: 1.5; color: var(--text-main); box-shadow: 4px 4px 0 rgba(0,0,0,0.15); z-index: 10; text-align: center; font-weight: 700; } 
.disclaimer-popup::after { content: ''; position: absolute; bottom: -8px; left: 50%; transform: translateX(-50%); border-width: 8px 8px 0; border-style: solid; border-color: var(--border-color) transparent transparent transparent; } 
.disclaimer-popup::before { content: ''; position: absolute; bottom: -5px; left: 50%; transform: translateX(-50%); border-width: 6px 6px 0; border-style: solid; border-color: var(--bg-color) transparent transparent transparent; z-index: 1; } 
.disclaimer-icon:hover .disclaimer-popup, .disclaimer-icon:active .disclaimer-popup, .disclaimer-icon:focus-within .disclaimer-popup { display: block; animation: popIn 0.2s ease-out; } 
@keyframes popIn { from { opacity: 0; transform: translate(-50%, 10px); } to { opacity: 1; transform: translate(-50%, 0); } } 
.sketch-btn { display: inline-block; background: var(--bg-color); color: var(--text-main); font-size: 14px; font-weight: 900; padding: 10px 24px; border: 2px solid var(--border-color); border-radius: 4px; cursor: pointer; box-shadow: 3px 3px 0 var(--border-color); transition: transform 0.1s, box-shadow 0.1s; } 
.sketch-btn:active { transform: translate(2px, 2px); box-shadow: 1px 1px 0 var(--border-color); } 
.sketch-btn:hover { background: var(--text-main); color: var(--bg-color); }
[data-theme="dark"] .sketch-btn:hover { background: #334155; color: #f8fafc; border-color: #475569; box-shadow: 2px 2px 0 rgba(0,0,0,0.45); } 
.comment-list { margin-top: 40px; padding-top: 24px; border-top: 2px dashed #eee; } 
.comment-item { margin-bottom: 24px; } .comment-body { display: flex; gap: 12px; position: relative; } 
.comment-avatar img { width: 40px; height: 40px; border-radius: 50%; border: 2px solid var(--border-color); object-fit: cover; } 
.comment-content-area { flex: 1; } .comment-meta { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; } 
.comment-author { font-size: 15px; font-weight: 900; color: var(--text-main); } 
.admin-badge--author { background: var(--text-main); color: var(--bg-color); border: 1px solid var(--border-color); font-size: 10px; padding: 0 4px; border-radius: 3px; vertical-align: middle; margin-left: 4px; } 
.comment-time { font-size: 11px; font-weight: 700; color: var(--text-sec); } 
.comment-reply-link { font-size: 11px; font-weight: 700; color: var(--text-main); border: 1px solid var(--border-color); padding: 1px 8px; border-radius: 3px; background: var(--bg-color); cursor: pointer; } 
.comment-reply-link:hover { background: var(--text-main); color: var(--bg-color); } 
.comment-text { font-size: 14px; line-height: 1.5; color: var(--text-main); font-weight: 500; } 
.comment-children { margin-top: 16px; margin-left: 20px; padding-left: 16px; border-left: 2px dotted var(--border-color); } 
.comment-children .comment-avatar img { width: 32px; height: 32px; } 
.reply-hint { background: #f0f0f0; border: 2px solid var(--border-color); padding: 8px 12px; margin-bottom: 12px; display: flex; justify-content: space-between; align-items: center; font-weight: 700; border-radius: 4px; font-size: 13px; } 
.reply-hint-cancel { cursor: pointer; color: #ff0000; } 
@media (max-width: 600px) { .sketch-input { padding: 8px; font-size: 13px; } .comment-form-actions-bar { justify-content: space-between; } .captcha-area { flex: 1; } .sketch-btn { padding: 10px 20px; margin-left: 10px; flex-shrink: 0; } }

/* --- 6. 归档页面与小徽章 --- */
.archive-page-v2 { max-width: 680px; margin: 40px auto; padding: 0 16px; } 
.archive-main-title { text-align: center; font-size: 32px; font-weight: 900; margin-bottom: 60px; letter-spacing: 1px; color: var(--text-main); } 
.archive-year-group { margin-bottom: 0; } 
.archive-year-separator { margin: 40px 0; border-top: 2px dotted #ffe4e6; height: 1px; width: 100%; } 
.archive-year-header { margin-bottom: 30px; display: flex; align-items: baseline; gap: 12px; line-height: 1; } 
.archive-year-num { font-family: var(--font-serif); font-size: 28px; font-weight: 700; color: var(--text-main); } 
.archive-year-count { font-family: var(--font-base); font-size: 16px; font-weight: 800; color: var(--text-main); letter-spacing: 0.5px; } 
.archive-list { display: flex; flex-direction: column; gap: 32px; } 
.archive-item { display: flex; align-items: baseline; gap: 20px; } 
.archive-item__date { font-family: var(--font-serif); font-size: 18px; color: var(--text-sec); width: 70px; flex-shrink: 0; text-align: left; } 
.archive-item__title { font-size: 17px; font-weight: 400; color: var(--text-main); line-height: 1.4; transition: color 0.2s; } 
.archive-item__title:hover { color: var(--text-main); text-decoration: underline; } 
@media (max-width: 600px) { .archive-main-title { font-size: 28px; margin-bottom: 40px; } .archive-item { gap: 16px; } .archive-item__date { font-size: 16px; width: 60px; } .archive-item__title { font-size: 16px; } }
.signature-wrap { position: relative; display: inline-block; vertical-align: middle; margin: 0 4px; overflow: hidden; } 
.signature-img { height: 24px; width: auto; display: block; opacity: 0.9; } 
.signature-wrap::after { content: ''; position: absolute; top: 0; left: -150%; width: 100%; height: 100%; background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.6) 50%, rgba(255,255,255,0) 100%); transform: skewX(-25deg); animation: signature-shine 5s infinite; pointer-events: none; } 
@keyframes signature-shine { 0% { left: -150%; } 20% { left: 150%; } 100% { left: 150%; } }
.post-copyright-card { margin: 40px 0 20px; padding: 16px 20px; background: #f9f9faf0; border: 1px dashed #bbb; border-radius: 8px; font-size: 13px; color: var(--text-sec); line-height: 1.6; display: flex; flex-direction: column; gap: 4px; position: relative; } .post-copyright-card::before { content: ''; position: absolute; left: 0; top: 10px; bottom: 10px; width: 4px; background: #000; border-radius: 0 2px 2px 0; } .copyright-item { display: block; width: 100%; margin-bottom: 4px; } 
.copyright-label { font-weight: 800; color: var(--text-main); white-space: nowrap; margin-right: 6px; display: inline; } 
.copyright-value { color: var(--text-sec); font-weight: 500; word-break: break-all; display: inline; } 
.copyright-value a { border-bottom: 1px solid #ccc; transition: all 0.2s; } .copyright-value a:hover { border-bottom-color: #000; color: var(--text-main); }
.featured-badge { display: inline-flex; align-items: center; background-color: #fcd34d; color: #000; font-size: 10px; font-weight: 800; padding: 1px 6px; border-radius: 12px; border: 1px solid #000; margin-left: 6px; vertical-align: middle; box-shadow: 1px 1px 0 rgba(0,0,0,0.15); line-height: 1.2; cursor: default; } .comment-item.is-featured { position: relative; background-color: #fffbeb; border: 2px solid #fcd34d; border-radius: 8px; padding: 12px; margin-left: -12px; margin-right: -12px; margin-bottom: 24px; box-shadow: 4px 4px 0 rgba(252, 211, 77, 0.4); transition: transform 0.2s; } @media (max-width: 600px) { .comment-item.is-featured { margin-left: 0; margin-right: 0; padding: 10px; } }

/* --- 网站底部 --- */
.site-footer { border-top: var(--border-width) solid var(--border-color); padding: 24px 0; margin-top: auto; background: var(--bg-color); font-size: 12px; font-weight: 700; line-height: 1.4; }
.footer-inner { display: flex; flex-direction: column; gap: 10px; }
.footer-primary { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; padding-bottom: 10px; border-bottom: 1px dashed #eee; }
.footer-info-group { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.footer-defense, .footer-online-badge, .footer-town-badge { display: inline-flex; align-items: center; gap: 4px; background: transparent; padding: 2px 6px; border-radius: 4px; font-size: 11px; color: var(--text-sec); border: 1px solid var(--border-color); line-height: 1.3; white-space: nowrap; cursor: default; }
.footer-town-badge { cursor: pointer; transition: all 0.2s; text-decoration: none; }
.footer-town-badge:hover { border-color: var(--border-color); background: #e4e4e7; box-shadow: 2px 2px 0 rgba(0,0,0,0.1); transform: translateY(-1px); }
[data-theme="dark"] .footer-town-badge:hover { background: #334155; color: #f8fafc !important; border-color: #475569; box-shadow: 2px 2px 0 rgba(0,0,0,0.45); }
[data-theme="dark"] .footer-town-badge:hover img { opacity: 1; }
.footer-town-badge img { height: 12px; width: auto; display: block; opacity: 0.9; }
.footer-town-badge:hover img { opacity: 1; }
.footer-ver { background: var(--text-main); color: var(--bg-color); padding: 0 3px; border-radius: 2px; font-size: 10px; line-height: 1.2; display: inline-block; }
.online-dot { width: 6px; height: 6px; background-color: #10b981; border-radius: 50%; position: relative; display: inline-block; } .online-dot::after { content: ''; position: absolute; top: 50%; left: 50%; width: 100%; height: 100%; background-color: #10b981; border-radius: 50%; transform: translate(-50%, -50%); animation: ping 2s cubic-bezier(0, 0, 0.2, 1) infinite; opacity: 0.7; } @keyframes ping { 75%, 100% { transform: translate(-50%, -50%) scale(2.5); opacity: 0; } }
.footer-rss-icon { display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; border: 2px solid var(--border-color); border-radius: 4px; color: var(--text-main); transition: all 0.2s cubic-bezier(0.25, 1, 0.5, 1); background: var(--bg-color); } .footer-rss-icon svg { width: 14px; height: 14px; fill: currentColor; } .footer-rss-icon:hover { background: #f26522; border-color: #f26522; color: #fff; transform: translateY(-2px); box-shadow: 2px 2px 0 rgba(242, 101, 34, 0.3); }
.footer-secondary { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; color: var(--text-sec); } .footer-copyright { opacity: 0.8; } .footer-links { display: flex; gap: 12px; } .footer-legal-link { color: var(--text-sec); position: relative; transition: color 0.2s; } .footer-legal-link:hover { color: var(--text-main); text-decoration: underline; }
.footer-no-f12 { display: inline-block; vertical-align: middle; margin-left: 10px; opacity: 0.85; transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0.2s; position: relative; top: -1px; }
.footer-no-f12 img { height: 20px; width: auto; display: block; filter: drop-shadow(1px 1px 2px rgba(0,0,0,0.1)); }
.footer-no-f12:hover { opacity: 1; transform: scale(1.15) rotate(5deg); }
@media (max-width: 600px) { 
    .site-footer { padding: 20px 0 30px; } 
    .footer-primary, .footer-secondary { flex-direction: column; align-items: flex-start; gap: 8px; } 
    .footer-rss-icon { position: absolute; right: 16px; top: 24px; } 
    .footer-info-group { width: 100%; padding-right: 30px; gap: 6px; flex-wrap: wrap; } 
    .footer-author { font-size: 11px; width: 100%; flex-basis: 100%; display: block; margin-bottom: 2px; } 
    .signature-img { height: 20px; } 
    .footer-defense, .footer-online-badge, .footer-town-badge { padding: 1px 5px; font-size: 10px; } 
    .footer-town-badge img { height: 10px; } 
    .footer-links { font-size: 11px; gap: 10px; width: 100%; padding-top: 4px; } 
}

/* --- 弹窗与组件 --- */
.sketch-modal { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; visibility: hidden; pointer-events: none; } 
.sketch-modal.is-open { visibility: visible; pointer-events: auto; } 
.sketch-modal-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.42); opacity: 1; } 
.sketch-modal-content { position: relative; width: min(92vw, 340px); background: #fff; border: 2px solid #000; border-radius: 8px; box-shadow: 0 8px 24px rgba(0,0,0,0.16); display: flex; flex-direction: column; max-height: 78vh; overflow: hidden; } 
.sketch-modal-header { display: flex; justify-content: space-between; align-items: center; padding: 12px 14px; border-bottom: 1px solid #ececec; } 
.sketch-modal-header h3 { font-size: 15px; font-weight: 800; color: #000; display: flex; align-items: center; gap: 6px; margin: 0; } 
.sketch-modal-header h3::before { content: ''; display: block; width: 8px; height: 8px; background: #10b981; border-radius: 50%; } 
.sketch-modal-close { background: #fff; border: 1px solid #d9d9d9; border-radius: 6px; font-size: 14px; line-height: 1; font-weight: 900; color: #000; cursor: pointer; padding: 6px 8px; } 
.sketch-modal-close:hover { color: #000; border-color: #bfbfbf; } 
.sketch-modal-body { padding: 12px; overflow-y: auto; -webkit-overflow-scrolling: touch; } 
.online-user-list { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; } 
.online-user-item { display: flex; align-items: center; gap: 10px; padding: 10px; background: #fafafa; border: 1px solid #e5e5e5; border-radius: 6px; } 
.online-user-icon { width: 32px; height: 32px; border-radius: 50%; background: #f0f0f0; display: flex; align-items: center; justify-content: center; color: #333; flex-shrink: 0; border: 1px solid #ddd; } 
.online-user-info { flex: 1; min-width: 0; } 
.online-user-loc { font-size: 13px; font-weight: 800; color: #000; margin-bottom: 2px; } 
.online-user-meta { font-size: 11px; font-weight: 600; color: #666; }

.sketch-gallery { --gallery-cell: 108px; display: grid; gap: 8px; margin: 16px 0 8px; width: min(100%, calc(var(--gallery-cell) * 3 + 16px)); }
.sketch-gallery img { margin: 0 !important; width: var(--gallery-cell); height: var(--gallery-cell); aspect-ratio: 1 / 1; object-fit: cover; border-radius: 10px; border: 1px solid var(--border-color); box-shadow: none; cursor: zoom-in; transition: transform 0.2s ease; }
.sketch-gallery img:hover { transform: translateY(-1px); box-shadow: none; }
.sketch-gallery[data-count="1"] { grid-template-columns: repeat(1, var(--gallery-cell)); }
.sketch-gallery[data-count="2"] { grid-template-columns: repeat(2, var(--gallery-cell)); }
.sketch-gallery[data-count="3"], .sketch-gallery[data-count="0"] { grid-template-columns: repeat(3, var(--gallery-cell)); }
.sketch-gallery[data-count="4"] { grid-template-columns: repeat(2, var(--gallery-cell)); }

.article-gallery {
  --article-gap: 14px;
  display: grid;
  gap: var(--article-gap);
  margin: 28px 0 34px;
  width: 100%;
}
.article-gallery__item {
  position: relative;
  margin: 0 !important;
  overflow: hidden;
  border-radius: 8px;
  border: 2px solid #000;
  background: transparent;
  box-shadow: none;
}
.article-gallery__item img {
  width: 100%;
  height: 100%;
  min-height: 220px;
  max-height: none;
  margin: 0 !important;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  object-fit: cover;
  display: block;
  background: transparent;
  cursor: zoom-in;
  transition: transform .45s cubic-bezier(0.22, 1, 0.36, 1), filter .28s ease;
}
.article-gallery__item:hover img { transform: scale(1.02); filter: saturate(1.02); }

.article-gallery--count-1 {
  display: flex;
  justify-content: center;
  align-items: flex-start;
}
.article-gallery--count-1 .article-gallery__item {
  display: inline-block;
  width: auto;
  max-width: min(100%, 680px);
  justify-self: center;
  flex: 0 0 auto;
  line-height: 0;
}
.article-gallery--count-1 .article-gallery__item img {
  width: auto;
  max-width: 100%;
  height: auto;
  min-height: 0;
  max-height: none;
  object-fit: contain;
  background: transparent;
}

.article-gallery--count-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.article-gallery--count-2 .article-gallery__item img {
  min-height: clamp(240px, 34vw, 420px);
}

.article-gallery--count-3 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.article-gallery--count-3 .article-gallery__item:nth-child(1) {
  grid-column: 1 / -1;
}
.article-gallery--count-3 .article-gallery__item:nth-child(1) img {
  min-height: clamp(280px, 34vw, 420px);
}
.article-gallery--count-3 .article-gallery__item:nth-child(2) img,
.article-gallery--count-3 .article-gallery__item:nth-child(3) img {
  min-height: clamp(180px, 22vw, 260px);
}

.article-gallery--count-4 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.article-gallery--count-4 .article-gallery__item img {
  min-height: clamp(210px, 26vw, 320px);
}

.article-gallery--count-5 {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}
.article-gallery--count-5 .article-gallery__item:nth-child(1),
.article-gallery--count-5 .article-gallery__item:nth-child(2) {
  grid-column: span 3;
}
.article-gallery--count-5 .article-gallery__item:nth-child(n+3) {
  grid-column: span 2;
}
.article-gallery--count-5 .article-gallery__item:nth-child(-n+2) img {
  min-height: clamp(230px, 28vw, 340px);
}
.article-gallery--count-5 .article-gallery__item:nth-child(n+3) img {
  min-height: clamp(160px, 18vw, 220px);
}

.article-gallery--count-6 {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}
.article-gallery--count-6 .article-gallery__item:nth-child(1) {
  grid-column: 1 / span 4;
  grid-row: 1 / span 2;
}
.article-gallery--count-6 .article-gallery__item:nth-child(2),
.article-gallery--count-6 .article-gallery__item:nth-child(3) {
  grid-column: 5 / span 2;
}
.article-gallery--count-6 .article-gallery__item:nth-child(4),
.article-gallery--count-6 .article-gallery__item:nth-child(5),
.article-gallery--count-6 .article-gallery__item:nth-child(6) {
  grid-column: span 2;
}
.article-gallery--count-6 .article-gallery__item:nth-child(1) img {
  min-height: clamp(330px, 42vw, 520px);
}
.article-gallery--count-6 .article-gallery__item:nth-child(2) img,
.article-gallery--count-6 .article-gallery__item:nth-child(3) img,
.article-gallery--count-6 .article-gallery__item:nth-child(4) img,
.article-gallery--count-6 .article-gallery__item:nth-child(5) img,
.article-gallery--count-6 .article-gallery__item:nth-child(6) img {
  min-height: clamp(150px, 17vw, 220px);
}

.article-gallery--count-7 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.article-gallery--count-7 .article-gallery__item:nth-child(1) {
  grid-column: 1 / -1;
}
.article-gallery--count-7 .article-gallery__item:nth-child(1) img {
  min-height: clamp(280px, 34vw, 420px);
}
.article-gallery--count-7 .article-gallery__item:nth-child(n+2) img {
  min-height: clamp(160px, 18vw, 220px);
}

.article-gallery--count-8 {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}
.article-gallery--count-8 .article-gallery__item:nth-child(1),
.article-gallery--count-8 .article-gallery__item:nth-child(2) {
  grid-column: span 3;
}
.article-gallery--count-8 .article-gallery__item:nth-child(n+3) {
  grid-column: span 2;
}
.article-gallery--count-8 .article-gallery__item:nth-child(-n+2) img {
  min-height: clamp(220px, 26vw, 320px);
}
.article-gallery--count-8 .article-gallery__item:nth-child(n+3) img {
  min-height: clamp(150px, 17vw, 210px);
}

.article-gallery--count-9 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.article-gallery--count-9 .article-gallery__item img {
  min-height: clamp(160px, 18vw, 230px);
}

@media (max-width: 768px) {
  .sketch-gallery { --gallery-cell: 92px; gap: 6px; margin: 14px 0 6px; width: min(100%, calc(var(--gallery-cell) * 3 + 12px)); }
  .sketch-gallery img { width: var(--gallery-cell); height: var(--gallery-cell); border-radius: 8px; }
}

/* =========================================================
   全能画廊灯箱引擎 (Pro Lightbox)
   ========================================================= */
.sketch-lightbox { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; visibility: hidden; pointer-events: none; }
.sketch-lightbox.is-active { visibility: visible; pointer-events: auto; }
.lb-overlay { position: absolute; inset: 0; background: rgba(255,255,255,0.95); backdrop-filter: blur(5px); opacity: 0; transition: opacity 0.3s ease; }
.sketch-lightbox.is-active .lb-overlay { opacity: 1; }

.lb-topbar { position: absolute; top: 20px; left: 20px; right: 20px; display: flex; justify-content: space-between; align-items: flex-start; z-index: 2; pointer-events: none; }
.lb-counter { background: #000; color: #fff; font-size: 14px; font-weight: 900; font-family: monospace; padding: 6px 16px; border-radius: 30px; border: 2px solid #000; box-shadow: 3px 3px 0 rgba(0,0,0,0.2); opacity: 0; transform: translateY(-20px); transition: all 0.4s cubic-bezier(0.18, 0.89, 0.32, 1.28); pointer-events: auto; }
.lb-tools { display: flex; gap: 8px; opacity: 0; transform: translateY(-20px); transition: all 0.4s cubic-bezier(0.18, 0.89, 0.32, 1.28) 0.1s; pointer-events: auto; }
.lb-btn { background: #fff; border: 2px solid #000; color: #000; font-size: 18px; font-weight: 900; width: 40px; height: 40px; border-radius: 8px; cursor: pointer; box-shadow: 3px 3px 0 #000; display: flex; align-items: center; justify-content: center; transition: all 0.1s; }
.lb-btn#lb-zoom-reset { width: auto; padding: 0 12px; font-size: 14px; font-family: monospace; }
.lb-btn:active { transform: translate(2px, 2px); box-shadow: 1px 1px 0 #000; }
.lb-btn#lb-close { background: #f53f3f; color: #fff; }

.sketch-lightbox.is-active .lb-counter, .sketch-lightbox.is-active .lb-tools { opacity: 1; transform: translateY(0); }

.lb-nav { position: absolute; top: 50%; transform: translateY(-50%); background: #fff; border: 3px solid #000; color: #000; font-size: 32px; font-weight: 900; width: 50px; height: 50px; border-radius: 50%; cursor: pointer; box-shadow: 4px 4px 0 #000; display: flex; align-items: center; justify-content: center; transition: all 0.1s; z-index: 2; user-select: none; opacity: 0; }
.lb-nav:active { box-shadow: 1px 1px 0 #000; }
.sketch-lightbox.is-active .lb-nav { opacity: 1; }
.lb-prev { left: 30px; padding-right: 4px; padding-bottom: 4px; } .lb-prev:active { transform: translateY(-50%) translate(2px, 2px); }
.lb-next { right: 30px; padding-left: 4px; padding-bottom: 4px; } .lb-next:active { transform: translateY(-50%) translate(2px, 2px); }

.lb-img-container { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; z-index: 1; overflow: hidden; }
.lb-img-container img { max-width: 90vw; max-height: 85vh; border-radius: 8px; border: 3px solid #000; box-shadow: 10px 10px 0 rgba(0,0,0,0.15); transform-origin: center center; transition: transform 0.2s ease, opacity 0.2s ease; cursor: grab; opacity: 0; background: #fff; margin: 0; padding: 0; }
.lb-img-container img:active { cursor: grabbing; }

@media (max-width: 600px) {
    .lb-topbar { top: 10px; left: 10px; right: 10px; }
    .lb-tools { gap: 4px; }
    .lb-btn { width: 32px; height: 32px; font-size: 16px; border-width: 1px; box-shadow: 2px 2px 0 #000; }
    .lb-btn#lb-zoom-reset { padding: 0 8px; font-size: 12px; }
    .lb-nav { display: none !important; /* 手机端隐藏箭头，用滑动 */ }
    .lb-counter { padding: 4px 12px; font-size: 12px; border-width: 1px; box-shadow: 2px 2px 0 rgba(0,0,0,0.2); }
    .lb-img-container img { max-width: 95vw; max-height: 80vh; border-width: 2px; }
}


/* --- 博客小镇 --- */
.town-container { width: 100%; height: 65vh; min-height: 400px; overflow: hidden; position: relative; background: #e2f2e5; border: var(--border-width) solid var(--border-color); border-radius: var(--radius); box-shadow: var(--card-shadow); margin-bottom: 20px; }
.town-scroll-area { width: 100%; height: 100%; overflow: auto; -webkit-overflow-scrolling: touch; cursor: grab; user-select: none; }
.town-scroll-area:active { cursor: grabbing; }
.town-map { width: 1200px; height: 800px; background-image: url('/assets/town/town-bg.jpg'); background-size: cover; background-position: center; position: relative; margin: 0 auto; }
@media (min-width: 1250px) { .town-map { width: 100%; height: 100%; } }
.town-npc { position: absolute; width: 48px; height: 72px; transform: translate(-50%, -100%); transition: left 2s linear, top 2s linear; cursor: pointer; }
.town-npc img { width: 100%; height: 100%; object-fit: contain; animation: npc-breathe 1.5s infinite alternate ease-in-out; transform-origin: bottom center; filter: drop-shadow(2px 4px 0px rgba(0,0,0,0.25)); transition: transform 0.2s; }
.town-npc.is-mayor img { filter: drop-shadow(2px 5px 0px rgba(0,0,0,0.35)) contrast(1.1); animation: npc-breathe 1.2s infinite alternate ease-in-out; }
.town-npc.is-mayor .town-bubble { background: #dbeafe; border-color: #2563eb; color: #1e40af; z-index: 2; }
.town-npc.is-mayor .town-bubble::after { border-top-color: #2563eb; }
.town-npc.is-moving img { animation: npc-walk 0.35s infinite alternate ease-in-out; }
.town-npc.flip-x img { transform: scaleX(-1); }
@keyframes npc-breathe { 0% { transform: scaleY(1); } 100% { transform: scaleY(0.95); } }
@keyframes npc-walk { 0% { transform: rotate(-8deg) translateY(0); } 100% { transform: rotate(8deg) translateY(-6px); } }
.town-bubble { position: absolute; bottom: calc(100% + 5px); left: 50%; transform: translateX(-50%) scale(1); background: #fff; border: 2px solid #000; border-radius: 8px; padding: 3px 8px; font-size: 11px; font-weight: 800; color: #000; white-space: nowrap; box-shadow: 2px 2px 0 rgba(0,0,0,0.15); opacity: 0.9; pointer-events: none; z-index: 1; transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275), color 0.2s; }
.town-bubble::after { content: ''; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); border-width: 5px 5px 0; border-style: solid; border-color: #000 transparent transparent transparent; }
.town-npc.is-self .town-bubble { background: #fcd34d; }
.town-container[data-night="1"] .town-map { filter: brightness(0.6) saturate(1.2) hue-rotate(-10deg); }
.town-container[data-night="1"] .town-map::after { content: ''; position: absolute; inset: 0; background: rgba(20, 20, 80, 0.2); pointer-events: none; z-index: 50; }
.town-light { position: absolute; width: 250px; height: 250px; background: radial-gradient(circle, rgba(255,255,150,0.4) 0%, transparent 70%); border-radius: 50%; pointer-events: none; opacity: 0; transition: opacity 2s; z-index: 49; transform: translate(-50%, -50%); }
.town-container[data-night="1"] .town-light { opacity: 1; }
.emote-menu { position: absolute; background: #fff; border: 2px solid #000; padding: 5px; border-radius: 8px; display: none; gap: 5px; z-index: 10000; box-shadow: 4px 4px 0 #000; max-width: 90vw; flex-wrap: wrap; justify-content: center; }
.emote-menu.is-active { display: flex; animation: popIn 0.2s ease-out; }
.emote-btn { border: 1px solid #eee; background: none; padding: 6px 10px; cursor: pointer; border-radius: 4px; font-size: 14px; font-weight: bold; transition: all 0.1s; color: #333; white-space: nowrap; }
.emote-btn:hover { background: #000; color: #fff; border-color: #000; transform: scale(1.1); }
.town-billboard { position: absolute; width: 40px; height: 40px; font-size: 32px; line-height: 40px; text-align: center; cursor: pointer; z-index: 55; filter: drop-shadow(2px 4px 0px rgba(0,0,0,0.25)); transition: transform 0.2s; }
.town-billboard:hover { transform: scale(1.1); }
.town-modal { position: fixed; inset: 0; z-index: 11000; display: flex; align-items: center; justify-content: center; background: rgba(0,0,0,0.5); visibility: hidden; opacity: 0; transition: all 0.3s; backdrop-filter: blur(2px); }
.town-modal.is-active { visibility: visible; opacity: 1; }
.town-scroll-paper { background: #fdf6e3; border: 2px solid #5d4037; padding: 30px; max-width: 320px; width: 90%; position: relative; box-shadow: 10px 10px 0 rgba(0,0,0,0.2); font-family: var(--font-serif); color: #4e342e; text-align: center; transform: translateY(20px); transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
.town-modal.is-active .town-scroll-paper { transform: translateY(0); }
.town-scroll-paper h3 { margin-bottom: 20px; font-size: 22px; font-weight: bold; border-bottom: 1px dashed #795548; padding-bottom: 10px; color: #3e2723; }
.town-scroll-paper p { font-size: 16px; line-height: 1.6; margin-bottom: 15px; font-weight: 500;}
.town-scroll-paper .sketch-btn { margin-top: 10px; background: #5d4037; color: #fff; border-color: #3e2723; }
.town-scroll-paper .sketch-btn:hover { background: #000; }

/* --- 扫雷游戏 --- */
.ms-container { font-family: var(--font-base) !important; background: #c0c0c0 !important; border: 3px solid #000 !important; box-shadow: inset 2px 2px 0 #fff, inset -2px -2px 0 #808080, 8px 8px 0 rgba(0,0,0,0.5) !important; color: #000 !important; }
.ms-header { display: flex; justify-content: space-between; align-items: center; background: #fff; border: 2px solid #000; padding: 6px 12px; margin-bottom: 15px; border-radius: 4px; box-shadow: inset 2px 2px 0 #808080; }
.ms-counter { font-size: 22px; font-family: monospace; font-weight: 900; color: #dc2626; background: #000; padding: 2px 6px; border-radius: 2px; line-height: 1; letter-spacing: 2px; }
.ms-btn-face { font-size: 24px; border: 2px solid #000; background: #fff; cursor: pointer; padding: 0 4px; line-height: 1; box-shadow: 2px 2px 0 #000; transition: transform 0.1s; }
.ms-btn-face:active { transform: translate(2px, 2px); box-shadow: none; }
.ms-grid { display: grid; gap: 1px; background: #000; border: 2px solid #000; padding: 1px; user-select: none; }
.ms-cell { width: 100%; aspect-ratio: 1/1; background: #d4d4d8; display: flex; align-items: center; justify-content: center; font-weight: 900; font-size: 14px; cursor: pointer; box-shadow: inset 2px 2px 0 #fff, inset -2px -2px 0 #808080; }
.ms-cell:active:not(.is-revealed) { background: #e4e4e7; box-shadow: inset 2px 2px 0 #808080; }
.ms-cell.is-revealed { background: #fff; box-shadow: inset 1px 1px 3px rgba(0,0,0,0.1); cursor: default; }
.ms-cell[data-num="1"] { color: #2563eb; } .ms-cell[data-num="2"] { color: #16a34a; }
.ms-cell[data-num="3"] { color: #dc2626; } .ms-cell[data-num="4"] { color: #1e3a8a; }
.ms-cell[data-num="5"] { color: #7f1d1d; } .ms-cell[data-num="6"] { color: #0d9488; }
.ms-cell[data-num="7"] { color: #000000; } .ms-cell[data-num="8"] { color: #52525b; }

/* --- 更新日志与反馈 --- */
.logs-page-container { max-width: 700px; margin: 0 auto; padding: 20px 16px; }
.logs-hero-banner { width: 100%; border: var(--border-width) solid var(--border-color); border-radius: var(--radius); overflow: hidden; background: #eefdf2; margin-bottom: 20px; }
.logs-hero-banner img { width: 100%; display: block; }
.logs-action-bar { display: flex; gap: 12px; margin-bottom: 40px; align-items: stretch; }
.logs-announcement { flex: 1; display: flex; align-items: center; background: #fffaf0; border: var(--border-width) solid var(--border-color); border-radius: 8px; padding: 0 12px; gap: 10px; overflow: hidden; }
.gg-icon { width: 20px; height: 20px; flex-shrink: 0; }
.ticker-wrap { flex: 1; height: 24px; overflow: hidden; position: relative; }
.ticker-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.ticker-item { height: 24px; line-height: 24px; font-size: 14px; font-weight: 800; white-space: nowrap; display: flex; align-items: center; }
.ticker-item span { display: inline-block; }
.ticker-item b { color: #d97706; margin: 0 4px; }
.logs-feedback-btn { background: #000; color: #fff; font-weight: 900; font-size: 14px; border: var(--border-width) solid var(--border-color); border-radius: 8px; padding: 0 20px; cursor: pointer; transition: transform 0.1s, box-shadow 0.1s; white-space: nowrap; }
.logs-feedback-btn:hover { background: #222; transform: translateY(-2px); box-shadow: 2px 2px 0 rgba(0,0,0,0.2); }
.logs-feedback-btn:active { transform: translateY(0); box-shadow: none; }
.logs-timeline { padding-left: 10px; }
.log-item { display: flex; margin-bottom: 20px; }
.log-axis { width: 24px; border-left: 2px dashed #000; position: relative; margin-left: 8px; flex-shrink: 0; }
.log-axis::before { content: ''; position: absolute; top: 0; left: -8px; width: 14px; height: 14px; border: 2px solid #000; border-radius: 50%; background: #fff; }
.log-content-wrapper { flex: 1; padding-bottom: 20px; margin-top: -4px; }
.log-date-title { font-size: 18px; font-weight: 900; color: #000; margin-bottom: 12px; display: flex; align-items: center; }
.log-box { background: #ffeded; border: 2px solid #000; border-radius: 12px; padding: 16px; font-size: 14px; font-weight: 700; color: #000; line-height: 1.8; margin-bottom: 12px; }
.log-like-btn { display: inline-flex; align-items: center; gap: 6px; font-size: 16px; font-weight: 900; color: #000; cursor: pointer; user-select: none; transition: transform 0.2s; }
.log-like-btn img { width: 24px; height: 24px; transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
.log-like-btn:hover { transform: translateX(2px); }
.log-like-btn.is-liked img { transform: scale(1.2) rotate(-15deg); filter: invert(40%) sepia(90%) saturate(1500%) hue-rotate(340deg); }
.log-like-btn.is-animating img { animation: popBounce 0.4s ease-out; }
@keyframes popBounce { 0% { transform: scale(1); } 50% { transform: scale(1.5) rotate(-20deg); } 100% { transform: scale(1.2) rotate(-15deg); } }
.feedback-modal-content { max-width: 360px !important; padding: 0 !important; background: #fff2f2 !important; overflow: hidden; }
.feedback-modal-banner { position: relative; border-bottom: 2px solid #000; background: #fff; }
.feedback-modal-banner img { width: 100%; display: block; }
.feedback-modal-banner .sketch-modal-close { position: absolute; top: 10px; right: 10px; background: #fff; width: 28px; height: 28px; border: 2px solid #000; border-radius: 50%; display: flex; align-items: center; justify-content: center; box-shadow: 2px 2px 0 #000; z-index: 10; }
.feedback-modal-body { padding: 20px; display: flex; flex-direction: column; gap: 15px; }
.feedback-action-row { display: flex; justify-content: space-between; gap: 10px; align-items: stretch; }
.feedback-action-row .captcha-group { flex: 1; display: flex; align-items: stretch; border: 2px solid #000; border-radius: 4px; overflow: hidden; background: #fff; box-sizing: border-box; }
.feedback-action-row .captcha-img { border: none; border-right: 2px solid #000; border-radius: 0; height: 100%; object-fit: cover; flex-shrink: 0; cursor: pointer; }
.feedback-action-row .captcha-input { border: none; border-radius: 0; height: 40px; flex: 1; width: 100%; box-shadow: none !important; margin: 0; text-align: center; font-weight: 700; letter-spacing: 1px; outline: none; }
.feedback-action-row .captcha-input:focus { box-shadow: none !important; z-index: 1; }
.feedback-action-row .sketch-btn { width: 100px; text-align: center; padding: 0; flex-shrink: 0; }
@media (max-width: 600px) { .logs-action-bar { flex-direction: column; } .logs-feedback-btn { padding: 10px; } }
.admin-logs-panel { background: #fff; border: 2px dashed #10b981; border-radius: 8px; padding: 15px; margin-bottom: 24px; box-shadow: 4px 4px 0 rgba(16, 185, 129, 0.15); }
.admin-logs-panel h3 { margin-bottom: 15px; font-size: 16px; font-weight: 900; color: #047857; display: flex; align-items: center; gap: 6px; }
.admin-logs-grid { display: grid; grid-template-columns: 1fr; gap: 15px; }
@media(min-width: 768px) { .admin-logs-grid { grid-template-columns: 1fr 1fr; } }
.admin-logs-card { border: var(--border-width) solid var(--border-color); padding: 12px; border-radius: 8px; background: #fdfdfd; display: flex; flex-direction: column; box-sizing: border-box; overflow: hidden; }
.admin-logs-card h4 { margin-bottom: 10px; font-size: 14px; font-weight: 800; border-bottom: 1px dashed #ddd; padding-bottom: 5px; }
.admin-logs-card form { display: flex; flex-direction: column; width: 100%; box-sizing: border-box; }
.admin-logs-card .sketch-input, .admin-logs-card .sketch-btn { max-width: 100%; width: 100% !important; box-sizing: border-box; display: block; margin-left: 0; margin-right: 0; }
.admin-fb-list { list-style: none; padding: 0; margin: 0; max-height: 180px; overflow-y: auto; display: flex; flex-direction: column; gap: 8px; }
.admin-fb-list li { display: flex; justify-content: space-between; align-items: center; gap: 10px; background: #fffaf0; border: 1px solid #fde68a; padding: 6px 8px; border-radius: 4px; font-size: 12px; transition: transform 0.1s; }
.admin-fb-list li:hover { transform: translateX(2px); }
.fb-info { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #333; }
.fb-info b { color: #000; }
.fb-actions { display: flex; gap: 6px; flex-shrink: 0; }
.btn-approve { background: #10b981; border: 2px solid #000; border-radius: 4px; cursor: pointer; width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; font-size: 12px; transition: transform 0.1s; color: #fff; }
.btn-approve:active { transform: translateY(2px); }
.btn-reject { background: #fff; border: 2px solid #000; border-radius: 4px; cursor: pointer; width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; font-size: 12px; transition: transform 0.1s; }
.btn-reject:active { transform: translateY(2px); }

/* --- 个人信息名片 --- */
.profile-card-modal { position: fixed; inset: 0; z-index: 10001; display: flex; align-items: center; justify-content: center; visibility: hidden; opacity: 0; transition: all 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28); }
.profile-card-modal.is-open { visibility: visible; opacity: 1; }
.profile-card-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.5); backdrop-filter: blur(4px); }
.profile-card-content { position: relative; width: 90%; max-width: 340px; background: #FFFDF2; border: 3px solid #000; border-radius: 24px; padding: 24px; box-shadow: 12px 12px 0 rgba(0,0,0,0.2); transform: translateY(20px); transition: transform 0.3s; z-index: 2; }
.profile-card-modal.is-open .profile-card-content { transform: translateY(0); }
.profile-card-banner { position: absolute; top: -70px; right: -10px; width: 140px; height: 140px; z-index: 3; pointer-events: none; transform: rotate(12deg); }
.profile-card-banner img { width: 100%; height: 100%; object-fit: contain; }
.profile-id-badge { font-size: 12px; font-weight: 800; color: #BBB; margin-bottom: 15px; }
.profile-avatar-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 15px; position: relative; z-index: 10; }
.profile-avatar-wrap { position: relative; width: 80px; height: 80px; display: flex; align-items: center; justify-content: center; }
.profile-avatar-bg { position: absolute; inset: 0; background: #FFD2A0; clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); animation: p-spin 10s linear infinite; opacity: 0.6; }
.profile-avatar-img { position: relative; width: 64px; height: 64px; border-radius: 50%; border: 3px solid #000; overflow: hidden; background: #fff; z-index: 1; }
.profile-like-box { display: flex; align-items: center; gap: 8px; font-size: 20px; font-weight: 900; color: #000; cursor: pointer; user-select: none; transition: transform 0.1s; -webkit-tap-highlight-color: transparent; }
.profile-like-box:active { transform: scale(0.95); }
.profile-like-icon { width: 28px; height: 28px; transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
.profile-like-icon.is-animating { animation: p-like-pop 0.4s ease-out; }
@keyframes p-like-pop { 0% { transform: scale(1); } 50% { transform: scale(1.4) rotate(-15deg); } 100% { transform: scale(1) rotate(0deg); } }
.profile-name-row { display: flex; align-items: baseline; gap: 8px; margin-bottom: 4px; }
.profile-name { font-size: 24px; font-weight: 900; color: #000; }
.profile-ip { font-size: 12px; color: #FF6B00; font-weight: 800; display: flex; align-items: center; gap: 4px; }
.profile-ip::before { content: ''; width: 6px; height: 6px; background: #FF6B00; border-radius: 50%; }
.profile-url { font-size: 13px; font-weight: 700; color: #000; margin-bottom: 15px; word-break: break-all; }
.profile-url a { transition: color 0.2s; } .profile-url a:hover { color: #FF6B00; }
.profile-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.profile-tag { background: #F4F4F4; border-radius: 4px; padding: 4px 10px; font-size: 12px; font-weight: 800; color: #444; }
.profile-recent-label { font-size: 12px; font-weight: 800; color: #888; margin-bottom: 10px; }
.profile-recent-list { display: flex; flex-direction: column; gap: 8px; }
.profile-recent-item { background: #F9F9F9; border-radius: 8px; padding: 8px 12px; font-size: 13px; font-weight: 700; color: #333; line-height: 1.4; border: 1px solid transparent; word-break: break-word; }
@keyframes p-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
#js-p-likes { position: relative; top: 4px; }

/* --- 顶部提示框 --- */
.sketch-toast { position: fixed; top: 20px; left: 50%; transform: translateX(-50%) translateY(-20px) scale(0.95); background: #fff; border: 2px solid #000; color: #000; padding: 10px 24px; border-radius: 30px; font-size: 14px; font-weight: 800; box-shadow: 4px 4px 0 rgba(0,0,0,0.15); z-index: 100005; opacity: 0; pointer-events: none; transition: all 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28); display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.sketch-toast.is-visible { opacity: 1; transform: translateX(-50%) translateY(0) scale(1); }
.sketch-toast.is-error { background: #FEF2F2; border-color: #DC2626; color: #DC2626; box-shadow: 4px 4px 0 rgba(220, 38, 38, 0.15); }
.sketch-toast.is-success { background: #F0FDF4; border-color: #059669; color: #059669; box-shadow: 4px 4px 0 rgba(5, 150, 105, 0.15); }
.sketch-toast svg { flex-shrink: 0; }

/* === 动态、分页与其他组件 === */

/* --- 动态与推荐阅读 --- */
.moments-container { max-width: 600px; margin: 0 auto; padding: 45px 16px 20px; } 
.m-title-row { display: flex; align-items: baseline; gap: 10px; margin-bottom: 10px; } 
.m-main-title { font-size: 24px; font-weight: 900; color: var(--text-main); letter-spacing: 1px; }
.agg-card-wrapper { position: relative; margin-bottom: 50px; z-index: 1; margin-top: 15px; }
.agg-banner-img { position: absolute; right: 0px; top: -71px; width: 140px; z-index: 2; pointer-events: none; transform-origin: bottom right; transform: rotate(8deg); filter: drop-shadow(2px 4px 6px rgba(0,0,0,0.08)); }
.agg-card { background: var(--bg-color); border: 3px solid var(--border-color); border-radius: 16px; box-shadow: none; padding: 24px 20px 30px; position: relative; overflow: hidden; }
.agg-list { display: flex; flex-wrap: wrap; gap: 12px 20px; }
.agg-item { display: inline-flex; align-items: center; font-size: 15px; font-weight: 800; color: var(--text-main); text-decoration: none; transition: transform 0.2s; white-space: nowrap; max-width: 100%; overflow: hidden; }
.agg-item:hover { transform: translateX(2px); text-decoration: underline; }
.agg-item-prefix { font-weight: 900; margin-right: 6px; }
.agg-item-title { overflow: hidden; text-overflow: ellipsis; }
.agg-new-tag { background: #ff9a9e; color: #fff; font-size: 10px; font-weight: 900; padding: 1px 5px; border-radius: 4px; margin-left: 6px; transform: skewX(-5deg); box-shadow: 1px 1px 0 var(--border-color); border: 1px solid var(--border-color);}
.agg-refresh-btn { position: absolute; bottom: 0; right: 0; background: #fad0c4; color: #000; border-top-left-radius: 12px; border-bottom-right-radius: 10px; padding: 6px 16px; font-size: 12px; font-weight: 900; cursor: pointer; border-left: 3px solid var(--border-color); border-top: 3px solid var(--border-color); border-bottom: none; border-right: none; transition: background 0.2s; }
.agg-refresh-btn:hover { background: #ffb3b3; } .agg-refresh-btn:active { background: #ff9a9e; }
.moment-item { margin-bottom: 30px; padding-bottom: 30px; border-bottom: 1px dashed #ccc; }
.moment-item:last-child { border-bottom: none; }
.moment-header { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.moment-avatar { width: 36px; height: 36px; border-radius: 50%; border: 2px solid var(--border-color); object-fit: cover; }
.moment-meta { display: flex; flex-direction: column; }
.moment-author { font-size: 16px; font-weight: 900; color: var(--text-main); }
.moment-time { font-size: 12px; font-weight: 700; color: var(--text-sec); margin-top: 2px; }
.moment-content { font-size: 15px; font-weight: 800; color: var(--text-main); line-height: 1.6; margin-bottom: 12px; word-break: break-word;}
.m-publish-box { background: #f9f9faf0; border: 2px dashed var(--border-color); border-radius: 12px; padding: 16px; margin-bottom: 40px; }
.m-pub-textarea { width: 100%; min-height: 80px; resize: none; border: 2px solid var(--border-color); border-radius: 8px; padding: 10px; font-weight: 700; font-size: 14px; outline: none; margin-bottom: 10px; background: var(--bg-color); color: var(--text-main); }
.m-pub-tools { display: flex; justify-content: space-between; align-items: flex-end; }
.m-img-preview { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.m-img-thumb { width: 60px; height: 60px; border-radius: 6px; border: 2px solid var(--border-color); object-fit: cover; }

/* --- 翻页与特殊链接卡片 --- */
.pagination { display: flex; justify-content: center; align-items: center; gap: 16px; margin: 40px 0; font-family: var(--font-base); }
.pagination__link { font-size: 14px; font-weight: 800; color: var(--text-main); border: 2px solid var(--border-color); padding: 6px 16px; border-radius: 6px; box-shadow: 3px 3px 0 var(--border-color); transition: all 0.1s; background: var(--bg-color); text-decoration: none !important; }
.pagination__link:hover { background: var(--text-main); color: var(--bg-color); transform: translate(-1px, -1px); box-shadow: 4px 4px 0 rgba(0,0,0,0.5); }
.pagination__link:active { transform: translate(3px, 3px); box-shadow: 0 0 0 var(--border-color); }
.pagination__info { font-weight: 900; font-size: 15px; color: var(--text-sec); background: #f4f4f5; padding: 6px 12px; border-radius: 6px; border: 2px dashed #ccc; }

.sketch-link-card { display: flex; align-items: center; gap: 14px; padding: 12px 16px; margin: 24px 0; border: 2px solid var(--border-color); border-radius: 12px; background: #fffaf0; box-shadow: 4px 4px 0 rgba(0,0,0,0.1); transition: transform 0.2s, box-shadow 0.2s; text-decoration: none !important; color: var(--text-main) !important; }
.sketch-link-card:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 rgba(0,0,0,0.2); background: var(--bg-color); }
.slc-logo { width: 48px !important; height: 48px !important; border-radius: 50% !important; border: 2px solid var(--border-color) !important; object-fit: cover; flex-shrink: 0; margin: 0 !important; box-shadow: none !important; }
.slc-info { flex: 1; min-width: 0; display: flex; flex-direction: column; justify-content: center; }
.slc-title { font-size: 15px; font-weight: 900; margin-bottom: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.2; }
.slc-desc { font-size: 12px; color: var(--text-sec); font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.2; }
@media (max-width: 600px) { .sketch-link-card { padding: 10px 12px; gap: 10px; } .slc-logo { width: 40px !important; height: 40px !important; } .slc-title { font-size: 14px; } }

/* --- 开发者工具警告弹窗 --- */
.f12-warning-modal { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, 0.65); backdrop-filter: blur(5px); visibility: hidden; opacity: 0; transition: all 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28); }
.f12-warning-modal.is-active { visibility: visible; opacity: 1; }
.f12-warning-content { position: relative; width: 360px; max-width: 90%; background: #FFFDF5; border: 4px solid var(--border-color); border-radius: 24px; padding: 40px 30px 140px; box-shadow: 12px 12px 0 rgba(0, 0, 0, 0.25); text-align: center; transform: translateY(30px) scale(0.95); transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); display: flex; flex-direction: column; overflow: visible !important; }
.f12-warning-modal.is-active .f12-warning-content { transform: translateY(0) scale(1); }
.f12-warning-title { font-size: 28px; font-weight: 900; color: var(--text-main); margin-bottom: 24px; letter-spacing: 1px; line-height: 1.2; }
.f12-warning-desc { font-size: 16px; font-weight: 700; color: var(--text-sec); line-height: 1.8; text-align: justify; margin-bottom: 0; z-index: 2; position: relative; }
.f12-warning-bottom { position: static; }
.f12-warning-sign { position: absolute; bottom: 30px; left: 30px; display: flex; flex-direction: column; align-items: flex-start; z-index: 5; text-align: left; }
.f12-warning-brand { font-size: 20px; font-weight: 900; color: var(--text-main); margin-bottom: 4px; letter-spacing: -0.5px; }
.f12-warning-signature { height: 40px; width: auto; display: block; }
.f12-warning-banner { position: absolute; bottom: -15px; right: -25px; width: 180px; height: auto; z-index: 10; transform-origin: bottom right; transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
.f12-warning-content:hover .f12-warning-banner { transform: scale(1.05) rotate(2deg); }
.f12-warning-close { position: absolute; top: 16px; right: 16px; width: 36px; height: 36px; background: var(--bg-color); border: 3px solid var(--border-color); border-radius: 50%; font-size: 20px; font-weight: 900; cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 2px 2px 0 var(--border-color); transition: all 0.2s; padding: 0; z-index: 20; color: var(--text-main); }
.f12-warning-close:hover { background: var(--text-main); color: var(--bg-color); transform: rotate(90deg); border-color: var(--border-color); }
@media (max-width: 480px) { .f12-warning-content { width: 85%; padding: 30px 20px 120px; border-width: 3px; } .f12-warning-title { font-size: 24px; } .f12-warning-desc { font-size: 14px; } .f12-warning-banner { width: 140px; bottom: -15px; right: -15px; } .f12-warning-sign { left: 20px; bottom: 25px; } }

/* --- 音乐播放器 --- */
.music-page-container { max-width: 600px; margin: 60px auto 140px; padding: 0 16px; }
.music-search-card { background: #FFFDF5; border: 3px solid var(--border-color); border-radius: 12px; height: 48px; display: flex; align-items: center; padding: 0 16px; position: relative; box-shadow: 4px 4px 0 rgba(0,0,0,0.15); margin-bottom: 20px; z-index: 10; }
.music-search-card input { border: none; background: transparent; font-size: 15px; font-weight: 800; width: 65%; outline: none; color: var(--text-main); }
.music-search-card input::placeholder { color: #aaa; }
.music-banner-ss { position: absolute; right: -5px; bottom: -3px; width: 110px; height: auto; cursor: pointer; z-index: 5; transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275); filter: drop-shadow(2px 4px 0 rgba(0,0,0,0.1)); }
.music-banner-ss:hover { transform: scale(1.05) rotate(3deg); }
.music-history-box { margin-bottom: 10px; }
.music-history-box h3 { font-size: 18px; font-weight: 900; margin-bottom: 12px; color: var(--text-main); }
.music-history-tags { display: flex; flex-wrap: wrap; gap: 10px; }
.music-tag { background: var(--bg-color); border: 2px solid var(--border-color); border-radius: 8px; padding: 6px 14px; font-size: 13px; font-weight: 800; color: var(--text-main); cursor: pointer; transition: all 0.2s; box-shadow: 2px 2px 0 rgba(0,0,0,0.1); }
.music-tag:hover { background: var(--text-main); color: var(--bg-color); transform: translateY(-2px); }
.music-results-card { background: #FFFDF5; border: 3px solid var(--border-color); border-radius: 16px; padding: 30px 20px 20px; position: relative; box-shadow: 6px 6px 0 rgba(0,0,0,0.15); margin-top: 55px; }
.music-banner-jg1 { position: absolute; left: -5px; top: -28px; width: 70px; height: auto; z-index: 2; pointer-events: none; filter: drop-shadow(2px 4px 0 rgba(0,0,0,0.1)); }
.music-results-header { font-size: 12px; font-weight: 800; color: var(--text-sec); margin-bottom: 24px; padding-bottom: 15px; border-bottom: 2px dashed #ddd; position: relative; z-index: 3; padding-left: 80px; padding-right: 10px; }
.music-results-header-text { display: block; width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: right; }
.music-list { display: flex; flex-direction: column; gap: 12px; position: relative; z-index: 3; }
.music-item { background: #FFEBEB; border: 2px solid var(--border-color); border-radius: 12px; padding: 10px 14px; display: flex; align-items: center; gap: 12px; cursor: pointer; transition: transform 0.2s, box-shadow 0.2s; }
.music-item:hover { transform: translateX(4px); box-shadow: 2px 2px 0 rgba(0,0,0,0.1); }
.music-item-cover { width: 44px; height: 44px; border-radius: 50%; border: 2px solid var(--border-color); object-fit: cover; flex-shrink: 0; background: #222; }
.music-item-info { flex: 1; overflow: hidden; }
.music-item-name { font-size: 15px; font-weight: 900; color: var(--text-main); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
.music-item-artist { font-size: 11px; font-weight: 700; color: var(--text-sec); margin-top: 2px; }
.music-item-play-btn { width: 32px; height: 32px; transition: transform 0.1s; flex-shrink: 0; border-radius: 50%; border: 2px solid var(--border-color); background: var(--bg-color); padding: 6px; color: var(--text-main); }
.music-item:active .music-item-play-btn { transform: scale(0.9); }
.music-player-fixed { position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%); width: 90%; max-width: 600px; background: #FFFDF5; border: 3px solid var(--border-color); border-radius: 50px; display: flex; align-items: center; padding: 8px 16px; box-shadow: 4px 4px 0 rgba(0,0,0,0.2); z-index: 9999; }
.music-banner-bftg { position: absolute; right: -12px; bottom: -5px; width: 95px; height: auto; z-index: 2; pointer-events: none; filter: drop-shadow(2px 4px 0 rgba(0,0,0,0.1)); }
.player-avatar { width: 44px; height: 44px; border-radius: 50%; border: 2px solid var(--border-color); object-fit: cover; background: #222; animation: cd-spin 5s linear infinite; animation-play-state: paused; position: relative; z-index: 3; }
.player-avatar.is-playing { animation-play-state: running; }
.player-info-box { flex: 1; margin-left: 12px; margin-right: 5px; overflow: hidden; position: relative; z-index: 3; }
.player-current-name { font-size: 14px; font-weight: 900; color: var(--text-main); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.player-current-artist { font-size: 11px; font-weight: 700; color: var(--text-sec); }
.player-control-btn { width: 40px; height: 40px; cursor: pointer; transition: transform 0.1s; position: relative; z-index: 5; margin-right: 30px; border-radius: 50%; border: 2px solid var(--border-color); background: var(--bg-color); padding: 8px; color: var(--text-main); }
.player-control-btn:active { transform: scale(0.9); }
.music-loading { text-align: center; padding: 30px; font-weight: 800; color: #666; }

/* === 手机端显示适配 === */
.site-logo span, .nav-link { white-space: nowrap; }
@media (max-width: 600px) {
    .site-header { padding: 10px 0; }
    .header-inner { gap: 10px; }
    .site-logo { flex-shrink: 0; gap: 8px; }
    .site-logo .site-logo__img { width: 32px; height: 32px; }
    .site-logo span { font-size: 16px; }
    .site-nav { flex: 1; justify-content: flex-start; gap: 14px; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 2px; scrollbar-width: none; flex-wrap: nowrap; }
    .site-nav::-webkit-scrollbar { display: none; }
    .nav-link { font-size: 16px; padding: 10px 14px; }
    .banner-wrapper { height: 180px; border-radius: 8px; }
    .banner-title { font-size: 16px; bottom: 24px; padding: 0 10px; }
    .post-card { gap: 12px; padding: 10px; }
    .post-cover-art { width: 100px; height: 75px; margin-left: 2px; }
    .post-title { font-size: 15px; margin-bottom: 4px; }
    .post-excerpt { font-size: 12px; margin-bottom: 6px; }
}
@media (max-width: 360px) {
    .post-cover-art { width: 85px; height: 64px; }
    .site-nav { justify-content: flex-start; gap: 12px; } 
}


/* =========================================================
   ★ 核心：黑夜模式与悬浮按钮全局覆盖
   ========================================================= */

/* --- 1. 黑夜模式颜色配置 --- */
[data-theme="dark"] {
    --bg-color: #1a1b1e;
    --text-main: #d1d5db; /* 柔和的白色，避免夜间刺眼 */
    --text-sec: #9ca3af;
    --border-color: #4a4d50;
    --card-shadow: 3px 3px 0px #0a0a0a;
    --card-bg: #242629;
    --surface-2: #161b24;
    color-scheme: dark;
}

/* --- 2. 强制指定黑色背景的元素 --- */
[data-theme="dark"] .post-card, 
[data-theme="dark"] .banner-wrapper, 
[data-theme="dark"] .sketch-input, 
[data-theme="dark"] .sketch-btn, 
[data-theme="dark"] .link-card, 
[data-theme="dark"] .site-footer, 
[data-theme="dark"] .sketch-modal-overlay { background: rgba(0,0,0,0.6); }
[data-theme="dark"] .online-user-item { background: #161b22; border-color: #2d3748; }
[data-theme="dark"] .online-user-icon { background: #1f2937; border-color: #374151; color: #e5e7eb; }
[data-theme="dark"] .online-user-meta { color: #94a3b8; }
[data-theme="dark"] .sketch-modal-close { background: #0f172a; color: #e5e7eb; border-color: #334155; }
[data-theme="dark"] .sketch-modal-content, 
[data-theme="dark"] .music-search-card, 
[data-theme="dark"] .music-results-card, 
[data-theme="dark"] .music-player-fixed, 
[data-theme="dark"] .music-item, 
[data-theme="dark"] .town-panel, 
[data-theme="dark"] .menu-toggle, 
[data-theme="dark"] .card, 
[data-theme="dark"] .town-scroll-paper, 
[data-theme="dark"] .link-drawer, 
[data-theme="dark"] .drawer-input, 
[data-theme="dark"] .sketch-toast, 
[data-theme="dark"] .ms-header, 
[data-theme="dark"] .ms-btn-face, 
[data-theme="dark"] .admin-logs-panel, 
[data-theme="dark"] .admin-logs-card, 
[data-theme="dark"] .profile-card-content, 
[data-theme="dark"] .profile-avatar-img, 
[data-theme="dark"] .disclaimer-symbol, 
[data-theme="dark"] .disclaimer-popup, 
[data-theme="dark"] .captcha-img, 
[data-theme="dark"] .post-nav__link, 
[data-theme="dark"] .f12-warning-close, 
[data-theme="dark"] .f12-warning-content, 
[data-theme="dark"] .drawer-submit-btn,
[data-theme="dark"] .agg-card,
[data-theme="dark"] .m-publish-box,
[data-theme="dark"] .m-pub-textarea,
[data-theme="dark"] .emote-menu,
[data-theme="dark"] .feedback-action-row .captcha-group { 
    background-color: #242629 !important; 
    color: var(--text-main);
}

/* --- 3. 边框与滤镜微调 --- */
[data-theme="dark"] .disclaimer-popup::before, 
[data-theme="dark"] .town-bubble::after { 
    border-top-color: #242629 !important; 
}
[data-theme="dark"] .town-container { background-color: #1a202c; }
[data-theme="dark"] .prose img { background-color: transparent; }
[data-theme="dark"] .lb-overlay { background: rgba(0,0,0,0.95); }

/* 黑夜模式下图标反色 */
[data-theme="dark"] .signature-img,
[data-theme="dark"] .footer-town-badge img,
[data-theme="dark"] .footer-no-f12 img,
[data-theme="dark"] .profile-like-icon,
[data-theme="dark"] .log-like-btn img { 
    filter: invert(1) hue-rotate(180deg); 
    opacity: 0.9;
}

[data-theme="dark"] .logs-announcement { background: #242629; border-color: #4a4d50; }
[data-theme="dark"] .reply-hint { background: #1f242d !important; border-color: #3a4252 !important; color: #e5e7eb !important; box-shadow: none; }
[data-theme="dark"] .reply-hint span { color: inherit !important; }
[data-theme="dark"] .reply-hint-cancel { color: #f87171 !important; }
[data-theme="dark"] .reply-hint-cancel:hover { color: #fca5a5 !important; }
[data-theme="dark"] .ticker-item { color: #e5e7eb; }
[data-theme="dark"] .ticker-item b { color: #fbbf24; }
[data-theme="dark"] .gg-icon { filter: none; }
[data-theme="dark"] .logs-feedback-btn:hover { background: #334155; color: #f8fafc; border-color: #475569; box-shadow: 2px 2px 0 rgba(0,0,0,0.45); }
[data-theme="dark"] .log-like-btn { color: #e5e7eb; }

/* --- 4. 文字颜色提亮及模块盲区修补 --- */
[data-theme="dark"] .prose, 
[data-theme="dark"] .post-excerpt,
[data-theme="dark"] .comment-text,
[data-theme="dark"] .archive-item__title,
[data-theme="dark"] .moment-content,
[data-theme="dark"] .agg-item,
[data-theme="dark"] .m-main-title {
    color: var(--text-main) !important;
}

/* 标题级加亮（改用柔和白，拒绝刺眼纯白） */
[data-theme="dark"] .prose strong,
[data-theme="dark"] .prose b,
[data-theme="dark"] .prose h1,
[data-theme="dark"] .prose h2,
[data-theme="dark"] .prose h3,
[data-theme="dark"] .post-title,
[data-theme="dark"] .comment-author {
    color: #e5e5e5 !important; 
}

/* ★ 填补深色模式下所有浅色硬编码的盲区 */
[data-theme="dark"] .prose th { background-color: #2d3035 !important; color: #e5e5e5 !important; border-bottom-color: var(--border-color); }
[data-theme="dark"] .prose tr:nth-child(even) { background-color: #1f2124 !important; }
[data-theme="dark"] .prose tr:hover { background-color: #2a2d32 !important; }
[data-theme="dark"] .prose td { color: var(--text-main) !important; border-bottom-color: var(--border-color); }

[data-theme="dark"] .profile-name, 
[data-theme="dark"] .profile-url, 
[data-theme="dark"] .town-scroll-paper h3, 
[data-theme="dark"] .town-scroll-paper p, 
[data-theme="dark"] .log-date-title, 
[data-theme="dark"] .fb-info b { 
    color: #e5e5e5 !important; 
}

[data-theme="dark"] .profile-recent-item { 
    background-color: #1a1b1e !important; 
    border-color: #4a4d50 !important; 
    color: var(--text-main) !important; 
}

[data-theme="dark"] .profile-tag { 
    background-color: #1a1b1e !important; 
    color: var(--text-sec) !important; 
    border-color: #4a4d50 !important; 
}

[data-theme="dark"] .log-box { 
    background-color: #1a1b1e !important; 
    border-color: var(--border-color) !important; 
    color: var(--text-main) !important; 
}

[data-theme="dark"] .town-scroll-paper { 
    background-color: #242629 !important; 
    border-color: var(--border-color) !important; 
}

[data-theme="dark"] .prose blockquote {
    background-color: #2a2a2a;
    color: #cccccc;
    border-left-color: #666;
}

[data-theme="dark"] .prose strong {
    background: linear-gradient(120deg, transparent 60%, rgba(252, 211, 77, 0.25) 60%);
}

/* 日夜切换时的丝滑过渡动画 */
html.theme-preload *, html.theme-preload *::before, html.theme-preload *::after {
    transition: none !important;
}

html.theme-switching *, html.theme-switching *::before, html.theme-switching *::after {
    transition: background-color var(--theme-ease), color var(--theme-ease), border-color var(--theme-ease), box-shadow var(--theme-ease), opacity var(--theme-ease), filter var(--theme-ease) !important;
}
body, .site-header, .site-footer, .post-card, .banner-wrapper, .sketch-input, .sketch-btn, .link-card, .agg-card, .m-publish-box, .feed-loader__button, .tag-item, .comment-emoji-trigger, .article-gallery__item {
    transition: background-color var(--theme-ease), color var(--theme-ease), border-color var(--theme-ease), box-shadow var(--theme-ease), transform .18s ease, opacity var(--theme-ease), filter var(--theme-ease);
}

/* --- 5. 右下角悬浮按钮 --- */
.sketch-fab-group { position: fixed; right: 24px; bottom: 40px; display: flex; flex-direction: column; gap: 12px; z-index: 999; }
.sketch-fab-btn { width: 44px; height: 44px; border-radius: 50%; background: var(--bg-color); border: var(--border-width) solid var(--border-color); box-shadow: 2px 2px 0 var(--border-color); display: flex; align-items: center; justify-content: center; color: var(--text-main); cursor: pointer; transition: all 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275); outline: none; }
.sketch-fab-btn:hover { transform: translate(-2px, -2px); box-shadow: 4px 4px 0 var(--border-color); }
.sketch-fab-btn:active { transform: translate(2px, 2px); box-shadow: none; }
#js-back-top { opacity: 0; pointer-events: none; transform: translateY(20px); }
#js-back-top.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0); }

/* 太阳与月亮图标切换 */
[data-theme="dark"] #icon-moon { display: none !important; }
[data-theme="dark"] #icon-sun { display: block !important; }

/* 悬浮按钮在手机上的位置微调 */
@media(max-width: 600px) { 
    .sketch-fab-group { right: 16px; bottom: 20px; } 
    .sketch-fab-btn { width: 38px; height: 38px; } 
}

/* --- 底部备案信息 --- */
.footer-beian { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin-bottom: 12px; font-size: 13px; font-weight: 800; }
.beian-link { display: inline-flex; align-items: center; gap: 4px; color: var(--text-main); transition: opacity 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275); text-decoration: none !important; }
.beian-link:hover { opacity: 0.7; transform: translateY(-1px); }
.beian-icon { height: 16px; width: auto; display: block; object-fit: contain; }
@media (max-width: 600px) {
    .footer-beian { gap: 12px; margin-bottom: 10px; font-size: 12px; }
    .beian-icon { height: 14px; }
}


.album-container { max-width: 800px; margin: 0 auto 60px; padding: 20px 16px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; }
.album-tabs { display: flex; gap: 24px; margin-bottom: 30px; border-bottom: 2px solid var(--border-color, #eee); padding-bottom: 12px; }
.album-tab { background: transparent; border: none; font-size: 16px; font-weight: 800; color: var(--text-sec, #888); cursor: pointer; transition: all 0.2s; padding: 6px 10px; border-radius: 6px; display: flex; align-items: center; gap: 6px; outline: none; }
.album-tab i { font-size: 20px; font-weight: normal; }
.album-tab:hover { color: var(--text-main, #000); background: rgba(0,0,0,0.03); }
.album-tab.active { color: var(--text-main, #000); }
.cal-year-title { text-align: center; font-size: 28px; font-weight: 900; margin: 40px 0 20px; color: var(--text-main, #333); letter-spacing: 1px;}
.cal-month-title { text-align: center; font-size: 24px; font-weight: 800; margin-bottom: 24px; color: var(--text-main, #000); }
.cal-month-title span { font-size: 13px; color: var(--text-sec, #999); font-weight: 500; margin-left: 8px; }
.gal-month-title { text-align: center; font-size: 20px; font-weight: 800; margin-bottom: 20px; margin-top: 40px; color: var(--text-main, #000); }
.gal-month-title span { font-size: 13px; color: var(--text-sec, #999); font-weight: 500; margin-left: 6px; }
.album-view-section { display: none; animation: fadeIn 0.3s ease-out; }
.album-view-section.active { display: block; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.cal-week-header { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; font-size: 13px; font-weight: 500; color: var(--text-sec, #888); margin-bottom: 16px; }
.cal-days-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; margin-bottom: 50px; }
.cal-day { aspect-ratio: 1; border-radius: 8px; display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; }
.cal-day.empty-slot { background: transparent; }
.cal-day.no-pic { background: transparent; color: var(--text-main, #333); font-size: 18px; font-weight: 500; }
.cal-day.has-pic { cursor: pointer; transition: transform 0.2s; box-shadow: 2px 2px 8px rgba(0,0,0,0.05); }
.cal-day.has-pic:hover { transform: translateY(-2px); box-shadow: 2px 4px 12px rgba(0,0,0,0.15); }
.cal-day.has-pic img { width: 100%; height: 100%; object-fit: cover; filter: brightness(0.85); transition: filter 0.2s; }
.cal-day.has-pic:hover img { filter: brightness(1); }
.cal-date-center { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 24px; font-weight: 700; text-shadow: 0 1px 4px rgba(0,0,0,0.6); pointer-events: none; z-index: 2; }
.cal-count-badge { position: absolute; bottom: 4px; right: 4px; font-size: 10px; font-weight: 600; color: #fff; background: rgba(0,0,0,0.5); padding: 1px 5px; border-radius: 4px; z-index: 2; pointer-events: none; backdrop-filter: blur(2px); }
.gal-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-bottom: 50px; }
@media (min-width: 600px) { .gal-grid { grid-template-columns: repeat(4, 1fr); gap: 10px; } }
.gal-item { aspect-ratio: 1; border-radius: 8px; overflow: hidden; cursor: pointer; transition: transform 0.2s, opacity 0.2s; background: #eee; }
.gal-item:hover { transform: scale(0.98); opacity: 0.9; }
.gal-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hidden-gal-item { display: none; }
.gal-more-cover { position: relative; cursor: pointer; border-radius: 8px; overflow: hidden; aspect-ratio: 1; transition: transform 0.2s; background: #000; }
.gal-more-cover:hover { transform: scale(0.98); }
.gal-more-cover img { width: 100%; height: 100%; object-fit: cover; opacity: 0.5; transition: opacity 0.2s; }
.gal-more-cover:hover img { opacity: 0.3; }
.gal-more-text { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 16px; font-weight: 600; pointer-events: none; }
.pv-overlay { position: fixed; inset: 0; background: #111; z-index: 100000; display: flex; flex-direction: column; opacity: 0; visibility: hidden; transition: opacity 0.3s; font-family: -apple-system, sans-serif; box-sizing: border-box; }
.pv-overlay * { box-sizing: border-box; }
.pv-overlay.is-active { opacity: 1; visibility: visible; }
.pv-top { padding: 15px 20px; text-align: center; position: relative; background: #111; flex-shrink: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; min-height: 70px; }
.pv-title { color: #fff; font-size: 18px; font-weight: 800; margin-bottom: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 80%; }
.pv-time { color: #aaa; font-size: 12px; font-weight: 600; }
.pv-close { position: absolute; right: 15px; top: 50%; transform: translateY(-50%); color: #fff; font-size: 28px; cursor: pointer; transition: color 0.2s; opacity: 0.8; }
.pv-close:hover { color: #f53f3f; opacity: 1; }
.pv-center { flex: 1; min-height: 0; position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden; background: #000; }
.pv-img { max-width: 100%; max-height: 100%; object-fit: contain; opacity: 0; transform: scale(0.95); transition: opacity 0.2s, transform 0.2s; }
.pv-img.loaded { opacity: 1; transform: scale(1); }
.pv-nav { position: absolute; top: 0; bottom: 0; width: 60px; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0); font-size: 40px; cursor: pointer; transition: background 0.2s; z-index: 10; }
.pv-nav:hover { background: rgba(0,0,0,0.2); color: rgba(255,255,255,0.5); }
.pv-prev { left: 0; } .pv-next { right: 0; }
.pv-bottom { background: #111; display: flex; flex-direction: column; align-items: center; flex-shrink: 0; padding: 20px 0; width: 100%; }
.pv-link-btn { border: 1px solid #ccc; color: #fff; font-size: 13px; font-weight: 500; padding: 8px 24px; border-radius: 6px; margin-bottom: 24px; transition: all 0.2s; text-decoration: none; display: inline-block; }
.pv-link-btn:hover { background: #fff; color: #000; border-color: #fff; }
.pv-thumb-track { display: flex; width: 100%; overflow-x: auto; scroll-behavior: smooth; scrollbar-width: none; padding: 0 calc(50vw - 20px); }
.pv-thumb-track::-webkit-scrollbar { display: none; }
.pv-thumb { width: 40px; height: 40px; object-fit: cover; flex-shrink: 0; filter: brightness(0.3); cursor: pointer; transition: filter 0.2s; margin: 0 1px; border: none; }
.pv-thumb.active { filter: brightness(1); }

/* --- 相册暗黑模式增强适配 --- */
[data-theme="dark"] .cal-year-title, 
[data-theme="dark"] .cal-month-title, 
[data-theme="dark"] .gal-month-title,
[data-theme="dark"] .cal-day.no-pic { color: #e5e5e5; }
[data-theme="dark"] .album-tab { color: #888; }
[data-theme="dark"] .album-tab.active { color: #e5e5e5; }
[data-theme="dark"] .album-tab:hover { background: rgba(255,255,255,0.05); }
[data-theme="dark"] .cal-day.has-pic { box-shadow: 2px 2px 8px rgba(0,0,0,0.4); border-color: #333; }
[data-theme="dark"] .gal-item { border-color: #333; background: #242629; }
[data-theme="dark"] .gal-more-cover { border-color: #333; }



.comment-textarea-wrap { position: relative; }
.comment-textarea-wrap .js-comment-textarea { min-height: 190px; padding: 18px 18px 52px 18px; resize: vertical; }
.comment-emoji-trigger {
  position: absolute;
  left: 14px;
  bottom: 14px;
  border: 1px solid rgba(15,23,42,0.08);
  background: rgba(255,255,255,0.88);
  padding: 0;
  margin: 0;
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 8px 20px rgba(15,23,42,0.08);
  border-radius: 999px;
  transition: background-color var(--theme-ease), border-color var(--theme-ease), box-shadow var(--theme-ease), transform .18s ease;
}
.comment-emoji-trigger:hover,
.comment-emoji-trigger:active,
.comment-emoji-trigger.is-open { background: rgba(255,255,255,0.96); border-color: rgba(15,23,42,0.14); box-shadow: 0 10px 24px rgba(15,23,42,0.12); transform: translateY(-1px); }
.comment-emoji-trigger img { width: 20px; height: 20px; display: block; }
.comment-emoji-panel { margin-top: 12px; border: 2px solid var(--border-color); border-radius: 18px; background: var(--bg-color); box-shadow: 6px 6px 0 rgba(0,0,0,0.08); overflow: hidden; }
.comment-emoji-panel__head { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; border-bottom: 1px dashed #ddd; font-size: 16px; font-weight: 900; color: var(--text-main); }
.comment-emoji-panel__close { border: none; background: transparent; font-size: 32px; line-height: 1; color: var(--text-sec); cursor: pointer; padding: 0; }
.comment-emoji-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 10px; padding: 16px; max-height: 280px; overflow-y: auto; }
.comment-emoji-item { min-height: 74px; border: 1px solid #e5e7eb; border-radius: 12px; background: var(--bg-color); display: flex; flex-direction: column; align-items: center; justify-content: center; cursor: pointer; padding: 8px; gap: 6px; }
.comment-emoji-item:hover { border-color: var(--border-color); background: #f9fafb; }
.comment-emoji-item img { width: 32px; height: 32px; object-fit: contain; display: block; }
.comment-emoji-item span { font-size: 12px; line-height: 1.2; color: var(--text-main); max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.comment-emoji-empty { padding: 16px; color: var(--text-sec); }
.comment-text .comment-emoji { width: 22px; height: 22px; object-fit: contain; display: inline-block; vertical-align: text-bottom; margin: 0 2px; }
@media (max-width: 640px) {
  .comment-emoji-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; padding: 12px; }
  .comment-emoji-item { min-height: 68px; }
  .comment-emoji-item img { width: 28px; height: 28px; }
  .comment-emoji-trigger { left: 12px; bottom: 12px; width: 32px; height: 32px; }
  .comment-emoji-trigger img { width: 18px; height: 18px; }
}
[data-theme="dark"] .comment-emoji-trigger { background: rgba(22,27,36,0.96); border-color: #2a3242; box-shadow: 0 10px 24px rgba(0,0,0,0.28); }
[data-theme="dark"] .comment-emoji-trigger:hover,
[data-theme="dark"] .comment-emoji-trigger:active,
[data-theme="dark"] .comment-emoji-trigger.is-open { background: #1b2330; border-color: #334155; }
[data-theme="dark"] .comment-emoji-trigger img { filter: brightness(0) invert(1) opacity(.92); }
[data-theme="dark"] .comment-emoji-panel { background: #12151d; border-color: #2a3242; box-shadow: none; }
[data-theme="dark"] .comment-emoji-panel__head { border-bottom-color: #2a3242; color: #f5f7fb; }
[data-theme="dark"] .comment-emoji-panel__close { color: #cbd5e1; }
[data-theme="dark"] .comment-emoji-item { background: #161b24; border-color: #2a3242; }
[data-theme="dark"] .comment-emoji-item:hover { background: #1b2330; }
[data-theme="dark"] .comment-emoji-item span { color: #e5e7eb; }
[data-theme="dark"] .comment-rich-editor:empty:before { color: #94a3b8; }



.comment-pending-badge {
  display: inline-flex;
  align-items: center;
  margin-left: 8px;
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(245, 158, 11, 0.14);
  border: 1px solid rgba(245, 158, 11, 0.26);
  color: #b45309;
  font-size: 12px;
  vertical-align: middle;
}
[data-theme="dark"] .comment-pending-badge {
  background: rgba(245, 158, 11, 0.18);
  border-color: rgba(251, 191, 36, 0.2);
  color: #fbbf24;
}
[data-theme="dark"] .feed-loader__button { background: #242629; color: #f5f7fb; border-color: #4a4d50; box-shadow: 3px 3px 0 rgba(0,0,0,0.45); }
[data-theme="dark"] .feed-loader__button:hover { box-shadow: 4px 4px 0 rgba(0,0,0,0.45); }
[data-theme="dark"] .feed-loader__hint { color: #9ca3af; }
[data-theme="dark"] .tag-item { background: #161b24; border-color: #2a3242; color: #e5e7eb; }
[data-theme="dark"] .tag-item:hover { background: #f5f7fb; color: #111827; border-color: #f5f7fb; }
[data-theme="dark"] .article-gallery__item { background: transparent; border-color: #000; box-shadow: none; }
[data-theme="dark"] .article-gallery--count-1 .article-gallery__item img { background: transparent; }

.pagination { display:flex; justify-content:center; align-items:center; gap:12px; margin:40px 0; flex-wrap:wrap; }
.pagination__pages { display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:center; }
.pagination__link { display:inline-flex; align-items:center; justify-content:center; min-width:42px; height:40px; padding:0 14px; border:2px solid var(--border-color, #111); border-radius:10px; background:var(--card-bg, #fff); color:var(--text-main, #111); text-decoration:none !important; font-size:14px; font-weight:800; box-shadow:3px 3px 0 var(--border-color, #111); transition:transform .12s ease, box-shadow .12s ease, background .12s ease, color .12s ease; }
.pagination__link:hover { transform:translate(-1px, -1px); box-shadow:4px 4px 0 var(--border-color, #111); }
.pagination__link--current { background:var(--text-main, #111); color:var(--bg-color, #fff); pointer-events:none; }
.pagination__ellipsis { color:var(--text-sec, #666); font-weight:800; padding:0 4px; }


.feed-loader { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; margin:24px 0 40px; }
.feed-loader.is-hidden, .feed-loader__sentinel.is-hidden { display:none; }
.feed-loader__button { appearance:none; border:2px solid var(--border-color, #111); background:var(--card-bg, #fff); color:var(--text-main, #111); border-radius:12px; padding:12px 22px; font-size:14px; font-weight:800; box-shadow:3px 3px 0 var(--border-color, #111); cursor:pointer; transition:transform .12s ease, box-shadow .12s ease, opacity .12s ease; }
.feed-loader__button:hover { transform:translate(-1px, -1px); box-shadow:4px 4px 0 var(--border-color, #111); }
.feed-loader__button:disabled { opacity:.7; cursor:wait; transform:none; }
.feed-loader__hint { margin:0; font-size:13px; color:var(--text-sec, #666); }
.feed-loader__sentinel { width:100%; height:1px; }


/* --- 深色模式补强：文章页 / 独立页 / 在线访客弹窗 --- */
.prose a { color: #1d4ed8; text-decoration: underline; text-underline-offset: 2px; }
.copyright-value a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }

.comment-admin-ready {
  margin-bottom: 12px;
  padding: 10px 12px;
  display: flex;
  align-items: center;
  gap: 10px;
  border-radius: 12px;
  border: 1px solid #e5e7eb;
  background: #f8fafc;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.75);
}
.comment-admin-ready__avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid #d1d5db;
  object-fit: cover;
  flex-shrink: 0;
}
.comment-admin-ready__meta {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
}
.comment-admin-ready__name {
  font-size: 13px;
  font-weight: 700;
  color: #1f2937;
  line-height: 1.25;
}
.comment-admin-ready__badge {
  display: inline-flex;
  align-items: center;
  padding: 1px 4px;
  margin-left: 4px;
  border-radius: 4px;
  background: #111827;
  color: #ffffff;
  font-size: 10px;
  font-weight: 500;
  vertical-align: middle;
}
.comment-admin-ready__hint {
  margin-top: 1px;
  font-size: 11px;
  color: #6b7280;
}
.comment-closed-notice {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 6px;
    padding: 16px;
    background: #f9f9f9;
    border-radius: 8px;
    color: #999;
    font-size: 13px;
    border: 1px solid #eee;
    margin-bottom: 10px;
}

[data-theme="dark"] .post-detail__header { border-bottom-color: #343a40; }
[data-theme="dark"] .comment-list { border-top-color: #343a40; }
[data-theme="dark"] .post-copyright-card {
    background: rgba(36, 38, 41, 0.92);
    border-color: #4a4d50;
    color: #cbd5e1;
}
[data-theme="dark"] .post-copyright-card::before { background: #94a3b8; }

[data-theme="dark"] .comment-admin-ready {
  background: rgba(17, 24, 39, 0.88);
  border-color: rgba(148, 163, 184, 0.22);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
}
[data-theme="dark"] .comment-admin-ready__avatar {
  border-color: rgba(148, 163, 184, 0.28);
}
[data-theme="dark"] .comment-admin-ready__name {
  color: #f8fafc;
}
[data-theme="dark"] .comment-admin-ready__hint {
  color: #cbd5e1;
}
[data-theme="dark"] .comment-admin-ready__badge {
  background: #0f172a;
  color: #f8fafc;
  border: 1px solid rgba(148, 163, 184, 0.28);
}
[data-theme="dark"] .comment-closed-notice {
    background: #242629;
    color: #cbd5e1;
    border-color: #3f4448;
}
[data-theme="dark"] .comment-closed-notice svg { color: #94a3b8; }
[data-theme="dark"] .prose a,
[data-theme="dark"] .copyright-value a { color: #93c5fd !important; }
[data-theme="dark"] .prose p,
[data-theme="dark"] .prose li,
[data-theme="dark"] .prose blockquote,
[data-theme="dark"] .prose span,
[data-theme="dark"] .prose div,
[data-theme="dark"] .prose font,
[data-theme="dark"] .prose td,
[data-theme="dark"] .prose th { color: var(--text-main) !important; }
[data-theme="dark"] .post-detail__content .prose [style*="color"],
[data-theme="dark"] .post-detail__content .prose font[color] {
    color: var(--text-main) !important;
}
[data-theme="dark"] .post-detail__content .prose [style*="background-color: rgb(255"],
[data-theme="dark"] .post-detail__content .prose [style*="background: rgb(255"],
[data-theme="dark"] .post-detail__content .prose [style*="background-color:#fff"],
[data-theme="dark"] .post-detail__content .prose [style*="background:#fff"] {
    background: rgba(255,255,255,0.06) !important;
}
[data-theme="dark"] .sketch-modal-content {
    background: #1b1e24;
    border-color: #3d4450;
    color: #e5e7eb;
}
[data-theme="dark"] .sketch-modal-header {
    border-bottom-color: #303744;
}
[data-theme="dark"] .sketch-modal-header h3,
[data-theme="dark"] .online-user-loc {
    color: #f5f7fb !important;
}
[data-theme="dark"] .sketch-modal-body {
    color: #cbd5e1;
}


/* === 2026.03 前台头部重构 / 搜索 / 代码块 / 视频 === */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.site-header{padding:0;margin-bottom:16px;background:var(--bg-color);border-bottom:none;position:sticky;top:0;z-index:100;}
.site-header__top{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px 10px;position:relative;}
.site-header__actions{display:flex;align-items:center;gap:10px;flex:1;min-width:0;justify-content:flex-end;}
.site-logo--header{flex:0 0 auto;white-space:nowrap;}
.site-logo--header span{display:inline-block;white-space:nowrap;}

.site-action-btn{width:32px;height:32px;border:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:transparent;box-shadow:none;padding:0;appearance:none;-webkit-appearance:none;flex:0 0 32px;}
.site-action-btn img{width:22px;height:22px;object-fit:contain;display:block;}
.site-search-toggle { width: 32px; height: 32px; border: 0; background: transparent; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: transform 0.2s; }
.site-search-toggle:hover { transform: translateY(-2px); }

.site-search{display:none;align-items:center;gap:6px;border:2px solid var(--border-color);border-radius:999px;background:var(--bg-color);padding:2px 4px 2px 12px;z-index:100;box-shadow:0 2px 8px rgba(0,0,0,.05);}
.site-search.is-open { display:flex; position:absolute; right:56px; top:50%; transform:translateY(-50%); animation: searchExpand 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28) forwards; }
@keyframes searchExpand { from { width: 0; opacity: 0; transform: translateY(-50%) translateX(10px); } to { width: 200px; opacity: 1; transform: translateY(-50%) translateX(0); } }
.site-search__input{flex:1;min-width:0;border:0;outline:none;background:transparent;font-size:13px;font-weight:700;line-height:1.2;color:var(--text-main);height:30px;}
.site-search__input::placeholder{color:#b7b7b7;font-weight:800;}
.site-search__submit{width:30px;height:30px;border:0;border-radius:50%;background:transparent;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;appearance:none;-webkit-appearance:none;flex:0 0 30px;}
.site-search__submit img{width:16px;height:16px;display:block;}

.site-nav-row{border-top:1px solid #f1f1f1;border-bottom:none;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);}
.site-nav-row__inner{display:flex;align-items:center;justify-content:center;gap:0;padding:10px 16px;}
.site-nav{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;flex-wrap:wrap;}
.nav-link{font-size:17px;font-weight:900;line-height:1;padding:6px 8px;position:relative;white-space:nowrap;transition:opacity 0.2s;}
.nav-link:hover{opacity:0.6;}

@media (max-width: 600px) {
  .site-header{padding:4px 0 0; margin-bottom:12px;}
  .site-header__top{padding:10px 16px 8px;gap:8px;}
  .site-logo--header{max-width:none;}
  .site-logo--header .site-logo__img{width:32px;height:32px;}
  .site-logo--header span{font-size:16px;}
  .site-header__actions{gap:8px;}
  .site-action-btn{width:28px;height:28px;flex-basis:28px;}
  .site-action-btn img{width:20px;height:20px;}
  
  .site-search.is-open { right: 54px; animation: searchExpandMobile 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28) forwards; }
  .site-search__input{height:28px;font-size:12px;}
  .site-search__submit{width:28px;height:28px;flex-basis:28px;}
  .site-search__submit img{width:14px;height:14px;}
  
  .site-nav-row__inner{padding:6px 8px;}
  .site-nav{overflow-x:auto;justify-content:flex-start;gap:6px;flex-wrap:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
  .site-nav::-webkit-scrollbar{display:none;}
  .nav-link{font-size:15px;padding:8px 12px;}
}

@keyframes searchExpandMobile { from { width: 0; opacity: 0; transform: translateY(-50%) translateX(10px); } to { width: 170px; opacity: 1; transform: translateY(-50%) translateX(0); } }

@media (max-width: 380px) {
  .site-logo--header span{font-size:15px;}
  .site-search.is-open { right: 50px; }
}

[data-theme="dark"] .site-header { border-bottom: none; }
[data-theme="dark"] .site-action-btn,[data-theme="dark"] .site-search__submit{background:transparent;border-color:transparent;color:var(--text-main);box-shadow:none;}
[data-theme="dark"] .site-search{background:#242629;border-color:var(--border-color);color:var(--text-main);}
[data-theme="dark"] .site-nav-row{background:rgba(26,27,30,.9);border-color:#2d2f33;border-bottom:none;}
[data-theme="dark"] .nav-link:hover{background:transparent;}
[data-theme="dark"] .site-action-btn img,
[data-theme="dark"] .site-search__submit img{filter:brightness(0) invert(1) contrast(1.06);opacity:.96;}
[data-theme="dark"] .site-action-btn:hover img,
[data-theme="dark"] .site-search__submit:hover img{opacity:1;}
[data-theme="dark"] .limhy-code-block{border-color:#334155;box-shadow:4px 4px 0 rgba(0,0,0,.35);}

.limhy-code-block{margin:20px 0;border:1px solid #dbe3ef;border-radius:16px;background:#0f172a;color:#e5eef9;overflow:hidden;box-shadow:4px 4px 0 rgba(15,23,42,.08);}
.limhy-code-block__bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:rgba(148,163,184,.12);border-bottom:1px solid rgba(148,163,184,.18);} .limhy-code-block__actions{display:flex;align-items:center;gap:8px;}
.limhy-code-block__lang{font-size:12px;font-weight:800;letter-spacing:.08em;color:#cbd5e1;}
.limhy-code-block__copy,.limhy-code-block__toggle{appearance:none;-webkit-appearance:none;border:1px solid rgba(148,163,184,.28);background:rgba(15,23,42,.35);color:#f8fafc;height:30px;padding:0 12px;border-radius:999px;font-size:12px;font-weight:700;cursor:pointer;}
.limhy-code-block__copy:hover,.limhy-code-block__toggle:hover{transform:translateY(-1px);}
.limhy-code-block__body{position:relative;}.limhy-code-block__pre{margin:0;padding:16px 18px;overflow:auto;background:transparent;transition:max-height .24s ease;} .limhy-code-block.is-collapsed .limhy-code-block__pre{max-height:196px;overflow:hidden;} .limhy-code-block.is-collapsed .limhy-code-block__body::after{content:"";position:absolute;left:0;right:0;bottom:0;height:64px;background:linear-gradient(180deg, rgba(15,23,42,0) 0%, rgba(15,23,42,.96) 100%);pointer-events:none;} .limhy-code-block.is-expanded .limhy-code-block__pre{max-height:none;}
.limhy-code-block__pre code{display:block;white-space:pre;word-break:normal;overflow-wrap:normal;font-family:Menlo,Consolas,Monaco,monospace;font-size:13px;line-height:1.75;color:inherit;background:transparent;padding:0;border-radius:0;}
.prose pre,.post-detail__content pre{margin:20px 0;overflow:auto;}
.prose code,.post-detail__content code{font-family:Menlo,Consolas,Monaco,monospace;}
[data-theme="dark"] .limhy-code-block__copy{background:rgba(15,23,42,.6);border-color:rgba(148,163,184,.34);}

/* === 加密文章页 v2 === */
.password-page-v2 { max-width: 600px; margin: 40px auto 60px; padding: 0 16px; text-align: center; }
.pwd-header { display: flex; align-items: center; justify-content: flex-start; gap: 10px; margin-bottom: 40px; text-align: left; }
.pwd-title { font-size: 28px; font-weight: 900; color: var(--text-main); margin: 0; line-height: 1.3; }
.pwd-badge { border: 1px solid var(--text-main); font-size: 12px; font-weight: 800; padding: 2px 6px; border-radius: 4px; color: var(--text-main); white-space: nowrap; flex-shrink: 0; }
.pwd-banner { margin: 0 auto 30px; max-width: 240px; }
.pwd-banner img { width: 100%; height: auto; display: block; }
.pwd-desc { font-size: 18px; font-weight: 900; color: var(--text-main); margin-bottom: 20px; }
.pwd-form { max-width: 300px; margin: 0 auto; }
.pwd-input-group { display: flex; align-items: stretch; border: 1px solid var(--text-main); border-radius: 2px; overflow: hidden; background: var(--bg-color); }
.pwd-input { flex: 1; border: none; padding: 10px 14px; font-size: 15px; font-weight: 700; color: var(--text-main); outline: none; background: transparent; min-width: 0; box-shadow: none !important; }
.pwd-input::placeholder { color: #999; font-weight: 500; }
.pwd-submit { border: none; border-left: 1px solid var(--text-main); background: transparent; color: var(--text-main); font-size: 15px; font-weight: 900; padding: 0 20px; cursor: pointer; transition: background 0.2s, color 0.2s; box-shadow: none !important; }
.pwd-submit:hover { background: var(--text-main); color: var(--bg-color); }
.pwd-alert { margin-bottom: 16px; padding: 10px; border: 1px solid var(--border-color); border-radius: 4px; font-size: 13px; font-weight: 800; }
.pwd-alert--error { background: #fef2f2; color: #dc2626; border-color: #fca5a5; }

/* 加密页深色模式补强 */
[data-theme="dark"] .pwd-input-group { border-color: #666; }
[data-theme="dark"] .pwd-submit { border-left-color: #666; }
[data-theme="dark"] .pwd-badge { border-color: #666; color: #ccc; }

/* === 404 错误页 v2 === */
.error-page-v2 { display: flex; align-items: center; justify-content: center; min-height: 50vh; padding: 40px 16px; text-align: center; }
.error-page-v2__link { display: inline-flex; flex-direction: column; align-items: center; gap: 24px; text-decoration: none !important; transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275); cursor: pointer; -webkit-tap-highlight-color: transparent; }
.error-page-v2__link:hover { transform: scale(1.02); }
.error-page-v2__link:active { transform: scale(0.98); }
.error-page-v2__img { max-width: 280px; width: 100%; height: auto; display: block; margin: 0 auto; }
.error-page-v2__text { font-size: 20px; font-weight: 800; color: var(--text-sec); margin: 0; letter-spacing: 1px; }

/* 404页深色模式补强：防御性反色处理 */
[data-theme="dark"] .error-page-v2__img { filter: invert(1) hue-rotate(180deg) opacity(0.85); }
[data-theme="dark"] .error-page-v2__text { color: var(--text-main); }


.limhy-collapse{margin:14px 0;border:1.5px solid #111827;border-radius:12px;background:#fff;overflow:hidden;box-shadow:none;}
.limhy-collapse__summary{list-style:none;cursor:pointer;padding:12px 16px;font-weight:800;color:#0f172a;display:flex;align-items:center;gap:10px;user-select:none;line-height:1.35;}
.limhy-collapse__summary::-webkit-details-marker{display:none;}
.limhy-collapse__summary::before{content:"+";width:22px;height:22px;border:1px solid currentColor;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;line-height:1;flex-shrink:0;}
.limhy-collapse[open] .limhy-collapse__summary::before{content:"−";}
.limhy-collapse__content{padding:8px 16px 6px;border-top:1px dashed rgba(15,23,42,.18);line-height:1.7;}
.limhy-collapse__content > :first-child{margin-top:0 !important;}
.limhy-collapse__content > :last-child{margin-bottom:0 !important;}
.prose .limhy-collapse__content p,.post-detail__content .limhy-collapse__content p,.limhy-collapse__content p{margin:0 0 .35em !important;text-align:left;}
.prose .limhy-collapse__content p:last-child,.post-detail__content .limhy-collapse__content p:last-child,.limhy-collapse__content p:last-child{margin-bottom:0 !important;}
.prose .limhy-collapse__content ul,.prose .limhy-collapse__content ol,.post-detail__content .limhy-collapse__content ul,.post-detail__content .limhy-collapse__content ol,.limhy-collapse__content ul,.limhy-collapse__content ol{margin:8px 0 10px !important;}
.limhy-collapse__content li:last-child{margin-bottom:0 !important;}
.prose .limhy-collapse__content pre,.post-detail__content .limhy-collapse__content pre,.limhy-collapse__content pre,.limhy-collapse__content .limhy-code-block{margin:8px 0 0 !important;}
.limhy-collapse__content > *:only-child{margin-bottom:0 !important;}
.limhy-download-card{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:15px;margin:20px 0;padding:20px;border:1px solid #333;border-radius:12px;background:#1a1a1f;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;box-shadow:0 10px 30px rgba(0,0,0,.2);}
.limhy-download-card__lead{display:flex;align-items:center;gap:15px;min-width:0;flex:1 1 320px;}
.limhy-download-card__icon{width:52px;height:52px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--download-accent, #FFC814) 10%, transparent);color:var(--download-accent, #FFC814);flex-shrink:0;}
.limhy-download-card__body{min-width:0;}
.limhy-download-card__title{font-size:18px;font-weight:700;color:#e5e5e5;line-height:1.35;margin:0 0 4px;}
.limhy-download-card__desc{margin:0;color:#888;font-size:13px;line-height:1.7;}
.limhy-download-card__meta{margin-top:8px;font-size:13px;color:var(--download-accent, #FFC814);font-weight:700;}
.limhy-download-card__btn{display:inline-flex;align-items:center;justify-content:center;min-width:156px;padding:10px 24px;border-radius:6px;background:var(--download-accent, #FFC814);color:#221500 !important;font-weight:700;font-size:14px;text-decoration:none !important;flex-shrink:0;box-shadow:0 4px 15px rgba(255,200,20,.3);transition:transform .18s ease, box-shadow .18s ease;}
.limhy-download-card__btn:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(255,200,20,.28);}
[data-theme="dark"] .limhy-collapse{background:#0f172a;border-color:#475569;}
[data-theme="dark"] .limhy-collapse__summary{color:#e5eef9;}
[data-theme="dark"] .limhy-collapse__content{border-top-color:rgba(148,163,184,.24);}
[data-theme="dark"] .limhy-download-card{background:#1a1a1f;border-color:#333;}
[data-theme="dark"] .limhy-download-card__title{color:#e5e5e5;}
[data-theme="dark"] .limhy-download-card__desc{color:#888;}
[data-theme="dark"] .limhy-download-card__meta{color:var(--download-accent, #FFC814);}
[data-theme="dark"] .limhy-download-card__btn{background:var(--download-accent, #FFC814);color:#221500 !important;border-color:transparent;}
@media (max-width: 720px){.limhy-download-card{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:16px;padding:18px 16px;border-radius:20px;box-shadow:0 8px 18px rgba(0,0,0,.18);}.limhy-download-card__lead{display:grid;grid-template-columns:56px minmax(0,1fr);align-items:start;gap:14px;width:100%;min-width:0;flex:none;}.limhy-download-card__icon{width:56px;height:56px;border-radius:14px;}.limhy-download-card__body{min-width:0;display:flex;flex-direction:column;gap:6px;}.limhy-download-card__title{font-size:17px;margin:0;}.limhy-download-card__desc{font-size:13px;line-height:1.65;margin:0;}.limhy-download-card__meta{margin-top:2px;font-size:14px;line-height:1.4;}.limhy-download-card__btn{display:flex;width:100%;margin-top:0;min-width:0;min-height:52px;border-radius:12px;box-shadow:0 4px 14px rgba(255,200,20,.22);} }
