/* ============================================================ mianfei.css - 免费推荐页 (mianfei.html, mianfeilist.html, mianfeishoucang.html) ============================================================ */ /* === Page Banner === */ .cxz-page-banner { background: linear-gradient(135deg, var(--primary) 0%, var(--primary-light, #1a3f8f) 100%); color: var(--white, #fff); padding: 40px 0 36px; text-align: center; position: relative; overflow: hidden; } .cxz-page-banner::after { content: ""; position: absolute; top: -40%; right: -10%; width: 360px; height: 360px; border-radius: 50%; background: rgba(253, 185, 51, 0.08); pointer-events: none; } .cxz-page-banner::before { content: ""; position: absolute; bottom: -30%; left: -5%; width: 280px; height: 280px; border-radius: 50%; background: rgba(255, 255, 255, 0.04); pointer-events: none; } .cxz-banner-title { font-size: 28px; font-weight: 700; margin-bottom: 8px; position: relative; z-index: 1; } .cxz-banner-desc { font-size: 14px; opacity: 0.8; position: relative; z-index: 1; } /* ============================================================ Article Detail Card (mianfei.html) ============================================================ */ .cxz-article-card { background: var(--white, #fff); border-radius: var(--radius-lg, 12px); box-shadow: var(--shadow-sm, 0 2px 8px rgba(0,0,0,0.06)); overflow: hidden; transition: box-shadow 0.3s ease; } .cxz-article-card:hover { box-shadow: var(--shadow-md, 0 4px 16px rgba(0,0,0,0.08)); } .cxz-article-header { padding: 28px 32px 20px; border-bottom: 1px solid var(--border-light, #e5e7eb); position: relative; } .cxz-article-header::after { content: ""; position: absolute; bottom: -1px; left: 32px; width: 40px; height: 3px; background: linear-gradient(90deg, var(--primary), var(--gold)); border-radius: 2px; } .cxz-article-title { font-size: 24px; font-weight: 700; color: var(--text-dark, #1a1a2e); line-height: 1.5; margin-bottom: 14px; } .cxz-article-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; font-size: 13px; color: var(--text-muted, #6b7280); } .cxz-article-meta .author { color: var(--orange, #f15a22); font-weight: 600; } .cxz-article-meta .tag { display: inline-block; padding: 2px 10px; border-radius: 10px; font-size: 11px; font-weight: 600; background: rgba(16, 43, 106, 0.08); color: var(--primary); } .cxz-article-meta .views { display: flex; align-items: center; gap: 4px; } .cxz-article-body { padding: 28px 32px; font-size: 15px; line-height: 1.8; color: var(--text-dark, #1a1a2e); word-wrap: break-word; overflow-wrap: break-word; } .cxz-article-body img { max-width: 100%; height: auto; border-radius: var(--radius-md, 8px); margin: 16px 0; box-shadow: var(--shadow-sm, 0 2px 8px rgba(0,0,0,0.06)); } .cxz-article-body p { margin-bottom: 14px; } .cxz-article-body p:last-child { margin-bottom: 0; } .cxz-article-body h2, .cxz-article-body h3, .cxz-article-body h4 { margin-top: 24px; margin-bottom: 12px; font-weight: 700; color: var(--text-dark, #1a1a2e); } .cxz-article-body h2 { font-size: 20px; } .cxz-article-body h3 { font-size: 18px; } .cxz-article-body h4 { font-size: 16px; } .cxz-article-body ul, .cxz-article-body ol { padding-left: 24px; margin-bottom: 14px; } .cxz-article-body li { margin-bottom: 6px; } .cxz-article-body blockquote { margin: 16px 0; padding: 14px 20px; border-left: 4px solid var(--primary); background: var(--bg-light, #f4f6fb); border-radius: 0 var(--radius-md, 8px) var(--radius-md, 8px) 0; color: var(--text-muted, #6b7280); font-style: italic; } .cxz-article-body table { width: 100%; border-collapse: collapse; margin: 16px 0; } .cxz-article-body th, .cxz-article-body td { border: 1px solid var(--border-light, #e5e7eb); padding: 10px 14px; font-size: 14px; text-align: left; } .cxz-article-body th { background: var(--bg-light, #f4f6fb); font-weight: 600; color: var(--text-dark, #1a1a2e); } .cxz-article-body a { color: var(--primary); text-decoration: underline; text-underline-offset: 2px; } .cxz-article-body a:hover { color: var(--orange, #f15a22); } .cxz-article-footer { padding: 16px 32px; border-top: 1px solid var(--border-light, #e5e7eb); display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; background: var(--bg-light, #f4f6fb); } .cxz-article-footer .cxz-article-meta { gap: 16px; } /* Article Actions */ .cxz-article-actions { padding: 16px 32px; border-top: 1px solid var(--border-light, #e5e7eb); display: flex; align-items: center; gap: 12px; flex-wrap: wrap; } .cxz-action-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 8px 22px; border-radius: 20px; font-size: 13px; font-weight: 500; cursor: pointer; border: 1px solid var(--border-light, #e5e7eb); background: var(--bg-light, #f4f6fb); color: var(--text-dark, #1a1a2e); transition: all 0.3s ease; user-select: none; } .cxz-action-btn:hover { border-color: var(--primary); color: var(--primary); background: rgba(16, 43, 106, 0.04); } .cxz-action-btn:active { transform: scale(0.96); } .cxz-action-btn.liked { background: var(--orange, #f15a22); color: var(--white, #fff); border-color: var(--orange, #f15a22); } .cxz-action-btn.liked:hover { background: var(--red, #e74c3c); border-color: var(--red, #e74c3c); color: var(--white, #fff); } .cxz-action-btn.collected { background: var(--gold, #fdb933); color: var(--primary); border-color: var(--gold, #fdb933); } .cxz-action-btn.collected:hover { background: var(--gold-dark, #f5a623); border-color: var(--gold-dark, #f5a623); } .cxz-action-btn i { font-size: 16px; } .cxz-action-btn .count { font-size: 12px; opacity: 0.8; } /* Article Navigation */ .cxz-article-nav { margin-top: 24px; display: flex; gap: 16px; } .cxz-nav-item { flex: 1; padding: 18px 24px; background: var(--white, #fff); border-radius: var(--radius-lg, 12px); box-shadow: var(--shadow-sm, 0 2px 8px rgba(0,0,0,0.06)); text-decoration: none; transition: all 0.3s ease; border: 1px solid var(--border-light, #e5e7eb); } .cxz-nav-item:hover { box-shadow: var(--shadow-md, 0 4px 16px rgba(0,0,0,0.08)); border-color: var(--primary); transform: translateY(-1px); } .cxz-nav-label { font-size: 12px; color: var(--text-muted, #6b7280); margin-bottom: 6px; text-transform: uppercase; letter-spacing: 0.5px; } .cxz-nav-title { font-size: 14px; color: var(--text-dark, #1a1a2e); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; transition: color 0.2s; } .cxz-nav-item:hover .cxz-nav-title { color: var(--primary); } /* ============================================================ Article List (mianfeilist.html) ============================================================ */ .cxz-article-list { background: var(--white, #fff); border-radius: var(--radius-lg, 12px); box-shadow: var(--shadow-sm, 0 2px 8px rgba(0,0,0,0.06)); overflow: hidden; } .cxz-article-item { display: flex; align-items: center; justify-content: space-between; padding: 14px 20px; border-bottom: 1px solid var(--border-light, #e5e7eb); transition: background 0.2s ease; } .cxz-article-item:last-child { border-bottom: none; } .cxz-article-item:hover { background: var(--bg-light, #f4f6fb); } .cxz-article-item a { flex: 1; color: var(--text-dark, #1a1a2e); text-decoration: none; font-size: 14px; transition: color 0.2s; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .cxz-article-item a:hover { color: var(--orange, #f15a22); } .cxz-article-date { font-size: 12px; color: var(--text-muted, #6b7280); flex-shrink: 0; margin-left: 16px; } /* List items with structured layout (cxz-list-*) */ .cxz-list-item { display: flex; align-items: center; padding: 16px 24px; border-bottom: 1px solid var(--border-light, #e5e7eb); transition: all 0.25s ease; gap: 16px; } .cxz-list-item:last-child { border-bottom: none; } .cxz-list-item:hover { background: var(--bg-light, #f4f6fb); } .cxz-list-item + .cxz-list-item { border-top: 1px solid var(--border-light, #e5e7eb); } .cxz-list-title { flex: 1; min-width: 0; font-size: 15px; font-weight: 500; color: var(--text-dark, #1a1a2e); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; transition: color 0.2s; cursor: pointer; } .cxz-list-title:hover { color: var(--primary); } .cxz-list-title a { color: inherit; text-decoration: none; } .cxz-list-title a:hover { color: var(--primary); } .cxz-list-meta { display: flex; align-items: center; gap: 16px; font-size: 13px; color: var(--text-muted, #6b7280); flex-shrink: 0; } .cxz-list-meta .category { display: inline-block; padding: 2px 10px; border-radius: 10px; font-size: 11px; font-weight: 600; background: rgba(16, 43, 106, 0.08); color: var(--primary); } .cxz-list-meta .author { color: var(--orange, #f15a22); font-weight: 500; } .cxz-list-meta .date { color: var(--text-muted, #6b7280); } .cxz-list-action { display: flex; align-items: center; gap: 8px; flex-shrink: 0; } .cxz-list-action .cxz-action-btn { padding: 5px 14px; font-size: 12px; border-radius: 14px; } .cxz-list-action .btn-view { display: inline-flex; align-items: center; gap: 4px; padding: 5px 16px; border-radius: 14px; font-size: 12px; font-weight: 500; color: var(--primary); background: rgba(16, 43, 106, 0.06); border: 1px solid rgba(16, 43, 106, 0.15); cursor: pointer; transition: all 0.25s; text-decoration: none; } .cxz-list-action .btn-view:hover { background: var(--primary); color: var(--white, #fff); border-color: var(--primary); } .cxz-list-action .btn-collect { display: inline-flex; align-items: center; gap: 4px; padding: 5px 16px; border-radius: 14px; font-size: 12px; font-weight: 500; color: var(--gold, #fdb933); background: rgba(253, 185, 51, 0.08); border: 1px solid rgba(253, 185, 51, 0.25); cursor: pointer; transition: all 0.25s; } .cxz-list-action .btn-collect:hover { background: var(--gold, #fdb933); color: var(--primary); border-color: var(--gold, #fdb933); } .cxz-list-action .btn-collect.collected { background: var(--gold, #fdb933); color: var(--primary); border-color: var(--gold, #fdb933); } /* List item index number */ .cxz-list-item .list-index { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; font-size: 12px; font-weight: 700; flex-shrink: 0; background: var(--bg-light, #f4f6fb); color: var(--text-muted, #6b7280); } .cxz-list-item:nth-child(-n+3) .list-index { background: linear-gradient(135deg, var(--primary), var(--primary-light, #1a3f8f)); color: var(--white, #fff); box-shadow: 0 2px 6px rgba(16, 43, 106, 0.3); } /* List item with thumbnail */ .cxz-list-item.has-thumb { padding: 16px 24px; gap: 20px; } .cxz-list-thumb { width: 80px; height: 56px; border-radius: var(--radius-md, 8px); object-fit: cover; flex-shrink: 0; background: var(--bg-light, #f4f6fb); } .cxz-list-item.has-thumb .cxz-list-content { flex: 1; min-width: 0; } .cxz-list-item.has-thumb .cxz-list-title { display: block; margin-bottom: 6px; } /* ============================================================ Collection Grid (mianfeishoucang.html) ============================================================ */ .cxz-collect-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; } .cxz-collect-card { background: var(--white, #fff); border-radius: var(--radius-lg, 12px); overflow: hidden; box-shadow: var(--shadow-sm, 0 2px 8px rgba(0,0,0,0.06)); transition: all 0.3s ease; position: relative; border: 1px solid var(--border-light, #e5e7eb); } .cxz-collect-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md, 0 4px 16px rgba(0,0,0,0.08)); border-color: transparent; } .cxz-collect-card.removing { animation: fadeOutCard 0.4s ease forwards; } @keyframes fadeOutCard { 0% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: scale(0.9); } } .cxz-collect-card .cxz-card-body { padding: 20px; } .cxz-collect-card .cxz-card-title { font-size: 15px; font-weight: 600; color: var(--primary); line-height: 1.5; margin-bottom: 12px; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .cxz-collect-card .cxz-card-title a { color: var(--primary); text-decoration: none; transition: color 0.2s; } .cxz-collect-card .cxz-card-title a:hover { color: var(--orange, #f15a22); } .cxz-collect-card .cxz-card-meta { display: flex; align-items: center; justify-content: space-between; font-size: 12px; color: var(--text-muted, #6b7280); } .cxz-collect-card .cxz-card-remove { padding: 4px 14px; border-radius: 14px; font-size: 12px; background: transparent; color: var(--orange, #f15a22); border: 1px solid var(--orange, #f15a22); cursor: pointer; transition: all 0.3s; } .cxz-collect-card .cxz-card-remove:hover { background: var(--orange, #f15a22); color: var(--white, #fff); } /* Collect title & meta (standalone classes matching the spec) */ .cxz-collect-title { font-size: 15px; font-weight: 600; color: var(--primary); line-height: 1.5; margin-bottom: 10px; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .cxz-collect-title a { color: var(--primary); text-decoration: none; transition: color 0.2s; } .cxz-collect-title a:hover { color: var(--orange, #f15a22); } .cxz-collect-meta { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; font-size: 12px; color: var(--text-muted, #6b7280); } .cxz-collect-meta .collect-date { display: flex; align-items: center; gap: 4px; } .cxz-collect-meta .btn-remove { padding: 4px 14px; border-radius: 14px; font-size: 12px; background: transparent; color: var(--orange, #f15a22); border: 1px solid var(--orange, #f15a22); cursor: pointer; transition: all 0.3s; line-height: 1.4; } .cxz-collect-meta .btn-remove:hover { background: var(--orange, #f15a22); color: var(--white, #fff); } /* Collect card with image header */ .cxz-collect-card.has-image .cxz-collect-image { width: 100%; height: 140px; object-fit: cover; display: block; } .cxz-collect-card.has-image .cxz-collect-content { padding: 16px 20px; } /* Collect card color accent bar */ .cxz-collect-card::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 3px; background: linear-gradient(90deg, var(--primary), var(--gold)); opacity: 0; transition: opacity 0.3s; } .cxz-collect-card:hover::before { opacity: 1; } /* ============================================================ Filter Bar (shared across list & collection pages) ============================================================ */ .cxz-filter-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding: 16px 20px; background: var(--white, #fff); border-radius: var(--radius-lg, 12px); box-shadow: var(--shadow-sm, 0 2px 8px rgba(0,0,0,0.06)); margin-bottom: 20px; } .cxz-filter-bar .cxz-filter-label { font-size: 14px; font-weight: 600; color: var(--text-dark, #1a1a2e); margin-right: 4px; white-space: nowrap; } .cxz-filter-btn { display: inline-flex; align-items: center; justify-content: center; padding: 7px 20px; border-radius: 20px; font-size: 13px; font-weight: 500; color: var(--text-muted, #6b7280); background: var(--bg-light, #f4f6fb); border: 1px solid var(--border-light, #e5e7eb); cursor: pointer; transition: all 0.25s ease; white-space: nowrap; user-select: none; text-decoration: none; } .cxz-filter-btn:hover { color: var(--primary); border-color: var(--primary); background: rgba(16, 43, 106, 0.04); } .cxz-filter-btn.active { color: var(--white, #fff); background: var(--primary); border-color: var(--primary); box-shadow: 0 2px 8px rgba(16, 43, 106, 0.25); } .cxz-filter-btn.active:hover { background: var(--primary-hover, #0d224f); border-color: var(--primary-hover, #0d224f); } /* Filter bar search input */ .cxz-filter-bar .cxz-filter-search { display: flex; align-items: center; gap: 0; margin-left: auto; } .cxz-filter-bar .cxz-filter-search input { padding: 7px 14px; border: 1px solid var(--border-light, #e5e7eb); border-radius: 20px 0 0 20px; font-size: 13px; outline: none; background: var(--bg-light, #f4f6fb); color: var(--text-dark, #1a1a2e); transition: border-color 0.2s; min-width: 160px; } .cxz-filter-bar .cxz-filter-search input::placeholder { color: var(--text-muted, #6b7280); } .cxz-filter-bar .cxz-filter-search input:focus { border-color: var(--primary); background: var(--white, #fff); } .cxz-filter-bar .cxz-filter-search button { padding: 7px 18px; border: 1px solid var(--primary); border-left: none; border-radius: 0 20px 20px 0; font-size: 13px; font-weight: 500; color: var(--white, #fff); background: var(--primary); cursor: pointer; transition: background 0.2s; white-space: nowrap; } .cxz-filter-bar .cxz-filter-search button:hover { background: var(--primary-hover, #0d224f); } /* ============================================================ Pagination Enhancement ============================================================ */ .cxz-pagination { padding: 24px 20px; text-align: center; } .cxz-pagination .layui-laypage { display: flex; align-items: center; justify-content: center; gap: 4px; } .cxz-pagination .layui-laypage a, .cxz-pagination .layui-laypage span { min-width: 36px; height: 36px; line-height: 36px; padding: 0; border-radius: var(--radius-md, 8px); font-size: 13px; border: 1px solid var(--border-light, #e5e7eb); transition: all 0.2s; } .cxz-pagination .layui-laypage a:hover { color: var(--primary); border-color: var(--primary); background: rgba(16, 43, 106, 0.04); } .cxz-pagination .layui-laypage .layui-laypage-curr em { background: var(--primary); border-radius: var(--radius-md, 8px); } .cxz-pagination .layui-laypage .layui-laypage-curr { border-color: var(--primary); } /* ============================================================ Locked Content Overlay ============================================================ */ .cxz-content-lock { position: relative; } .cxz-content-lock::after { content: ""; position: absolute; bottom: 0; left: 0; width: 100%; height: 50%; background: linear-gradient(to bottom, transparent, var(--white, #fff) 40%); pointer-events: none; z-index: 1; } .cxz-content-lock .cxz-lock-overlay { position: absolute; inset: 0; background: rgba(255, 255, 255, 0.65); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); display: flex; flex-direction: column; align-items: center; justify-content: center; z-index: 2; border-radius: inherit; padding: 40px 20px; } .cxz-lock-icon { width: 64px; height: 64px; border-radius: 50%; background: linear-gradient(135deg, var(--primary), var(--primary-light, #1a3f8f)); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; box-shadow: 0 4px 16px rgba(16, 43, 106, 0.3); } .cxz-lock-icon i { font-size: 28px; color: var(--gold, #fdb933); } .cxz-lock-icon svg { width: 28px; height: 28px; fill: var(--gold, #fdb933); } .cxz-lock-text { font-size: 16px; font-weight: 600; color: var(--text-dark, #1a1a2e); margin-bottom: 8px; text-align: center; } .cxz-lock-text .lock-sub { display: block; font-size: 13px; font-weight: 400; color: var(--text-muted, #6b7280); margin-top: 4px; } .cxz-lock-text + .cxz-lock-btn, .cxz-lock-overlay .cxz-lock-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 10px 28px; border-radius: 24px; font-size: 14px; font-weight: 600; color: var(--primary); background: linear-gradient(135deg, var(--gold, #fdb933), var(--gold-dark, #f5a623)); border: none; cursor: pointer; transition: all 0.3s; box-shadow: 0 4px 14px rgba(253, 185, 51, 0.35); text-decoration: none; margin-top: 8px; } .cxz-lock-text + .cxz-lock-btn:hover, .cxz-lock-overlay .cxz-lock-btn:hover { background: linear-gradient(135deg, #ffc947, var(--gold, #fdb933)); box-shadow: 0 6px 20px rgba(253, 185, 51, 0.5); transform: translateY(-1px); } /* Inline lock (within article body) */ .cxz-inline-lock { position: relative; margin: 20px 0; padding: 24px; background: var(--bg-light, #f4f6fb); border-radius: var(--radius-md, 8px); border: 1px dashed var(--border-light, #e5e7eb); text-align: center; } .cxz-inline-lock .cxz-lock-icon { width: 48px; height: 48px; margin-bottom: 10px; } .cxz-inline-lock .cxz-lock-icon i { font-size: 22px; } .cxz-inline-lock .cxz-lock-text { font-size: 14px; margin-bottom: 10px; } /* ============================================================ Empty State ============================================================ */ .cxz-empty { text-align: center; padding: 60px 20px; color: var(--text-muted, #6b7280); } .cxz-empty-icon { font-size: 48px; margin-bottom: 12px; opacity: 0.3; } .cxz-empty-text { font-size: 14px; margin-bottom: 16px; } .cxz-empty-action { display: inline-flex; align-items: center; justify-content: center; padding: 8px 24px; border-radius: 20px; font-size: 13px; font-weight: 500; color: var(--primary); background: rgba(16, 43, 106, 0.06); border: 1px solid rgba(16, 43, 106, 0.15); cursor: pointer; transition: all 0.25s; text-decoration: none; } .cxz-empty-action:hover { background: var(--primary); color: var(--white, #fff); border-color: var(--primary); } /* ============================================================ Stats Bar (optional top summary) ============================================================ */ .cxz-stats-bar { display: flex; align-items: center; gap: 24px; padding: 16px 24px; background: var(--white, #fff); border-radius: var(--radius-lg, 12px); box-shadow: var(--shadow-sm, 0 2px 8px rgba(0,0,0,0.06)); margin-bottom: 20px; flex-wrap: wrap; } .cxz-stat-item { display: flex; align-items: center; gap: 8px; } .cxz-stat-item .stat-icon { width: 40px; height: 40px; border-radius: var(--radius-md, 8px); display: flex; align-items: center; justify-content: center; font-size: 18px; } .cxz-stat-item .stat-icon.blue { background: rgba(16, 43, 106, 0.1); color: var(--primary); } .cxz-stat-item .stat-icon.gold { background: rgba(253, 185, 51, 0.12); color: var(--gold-dark, #f5a623); } .cxz-stat-item .stat-icon.orange { background: rgba(241, 90, 34, 0.1); color: var(--orange, #f15a22); } .cxz-stat-item .stat-icon.green { background: rgba(39, 174, 96, 0.1); color: var(--green, #27ae60); } .cxz-stat-item .stat-info .stat-value { font-size: 20px; font-weight: 700; color: var(--text-dark, #1a1a2e); line-height: 1.2; } .cxz-stat-item .stat-info .stat-label { font-size: 12px; color: var(--text-muted, #6b7280); } /* ============================================================ Responsive Styles ============================================================ */ /* Tablet & below */ @media (max-width: 1024px) { .cxz-article-header { padding: 24px 24px 16px; } .cxz-article-body { padding: 24px 24px; } .cxz-article-footer { padding: 14px 24px; } .cxz-article-actions { padding: 14px 24px; } .cxz-article-title { font-size: 22px; } .cxz-collect-grid { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; } .cxz-filter-bar { padding: 12px 16px; } .cxz-list-item { padding: 14px 16px; } } /* Mobile */ @media (max-width: 768px) { /* Page Banner */ .cxz-page-banner { padding: 28px 16px 24px; } .cxz-banner-title { font-size: 22px; } .cxz-banner-desc { font-size: 13px; } /* Article Card */ .cxz-article-card { border-radius: var(--radius-md, 8px); } .cxz-article-header { padding: 20px 16px 14px; } .cxz-article-header::after { left: 16px; } .cxz-article-title { font-size: 19px; margin-bottom: 10px; } .cxz-article-meta { gap: 10px; font-size: 12px; } .cxz-article-body { padding: 20px 16px; font-size: 14px; line-height: 1.7; } .cxz-article-footer { padding: 12px 16px; flex-direction: column; align-items: flex-start; } .cxz-article-actions { padding: 12px 16px; gap: 8px; } .cxz-action-btn { padding: 7px 16px; font-size: 12px; } /* Article Navigation */ .cxz-article-nav { flex-direction: column; gap: 10px; } .cxz-nav-item { padding: 14px 16px; } /* Article List */ .cxz-article-list { border-radius: var(--radius-md, 8px); } .cxz-article-item { padding: 12px 16px; } .cxz-article-item a { font-size: 13px; } /* List items */ .cxz-list-item { flex-wrap: wrap; padding: 12px 16px; gap: 8px; } .cxz-list-title { font-size: 14px; width: 100%; flex: none; } .cxz-list-meta { gap: 10px; font-size: 12px; order: 2; } .cxz-list-action { order: 3; width: 100%; justify-content: flex-end; padding-top: 4px; } .cxz-list-item .list-index { width: 24px; height: 24px; font-size: 11px; } /* Collection Grid */ .cxz-collect-grid { grid-template-columns: 1fr; gap: 12px; } .cxz-collect-card { border-radius: var(--radius-md, 8px); } .cxz-collect-card .cxz-card-body { padding: 16px; } .cxz-collect-card:hover { transform: none; } /* Filter Bar */ .cxz-filter-bar { padding: 10px 12px; gap: 8px; border-radius: var(--radius-md, 8px); } .cxz-filter-btn { padding: 6px 14px; font-size: 12px; } .cxz-filter-bar .cxz-filter-label { font-size: 13px; width: 100%; margin-bottom: 2px; } .cxz-filter-bar .cxz-filter-search { margin-left: 0; width: 100%; } .cxz-filter-bar .cxz-filter-search input { flex: 1; min-width: 0; } /* Pagination */ .cxz-pagination { padding: 16px 12px; } /* Locked Content */ .cxz-lock-icon { width: 52px; height: 52px; } .cxz-lock-icon i { font-size: 24px; } .cxz-lock-text { font-size: 14px; } .cxz-lock-overlay .cxz-lock-btn { padding: 8px 22px; font-size: 13px; } /* Empty State */ .cxz-empty { padding: 40px 16px; } .cxz-empty-icon { font-size: 40px; } /* Stats Bar */ .cxz-stats-bar { padding: 12px 16px; gap: 16px; } .cxz-stat-item .stat-info .stat-value { font-size: 18px; } } /* Small mobile */ @media (max-width: 480px) { .cxz-article-title { font-size: 17px; } .cxz-article-meta { flex-direction: column; align-items: flex-start; gap: 4px; } .cxz-article-actions { flex-direction: column; align-items: stretch; } .cxz-action-btn { justify-content: center; } .cxz-filter-bar { flex-direction: column; align-items: stretch; } .cxz-filter-btn { text-align: center; } .cxz-list-meta { flex-wrap: wrap; gap: 6px; } .cxz-stats-bar { flex-direction: column; align-items: flex-start; gap: 12px; } } /* ============================================================ Animations ============================================================ */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } } .cxz-article-card { animation: fadeInUp 0.4s ease; } .cxz-article-list { animation: fadeInUp 0.4s ease; } .cxz-collect-card { animation: fadeInUp 0.4s ease; } .cxz-collect-card:nth-child(2) { animation-delay: 0.05s; } .cxz-collect-card:nth-child(3) { animation-delay: 0.1s; } .cxz-collect-card:nth-child(4) { animation-delay: 0.15s; } .cxz-collect-card:nth-child(5) { animation-delay: 0.2s; } .cxz-collect-card:nth-child(6) { animation-delay: 0.25s; } /* Filter bar slide in */ @keyframes slideDown { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } } .cxz-filter-bar { animation: slideDown 0.35s ease; } /* Pulse animation for lock icon */ @keyframes lockPulse { 0%, 100% { box-shadow: 0 4px 16px rgba(16, 43, 106, 0.3); } 50% { box-shadow: 0 4px 24px rgba(16, 43, 106, 0.5); } } .cxz-lock-icon { animation: lockPulse 2.5s ease-in-out infinite; } /* ============================================================ Print Styles ============================================================ */ @media print { .cxz-article-actions, .cxz-article-nav, .cxz-filter-bar, .cxz-pagination, .cxz-content-lock .cxz-lock-overlay, .cxz-collect-meta .btn-remove, .cxz-collect-meta .cxz-card-remove, .cxz-list-action { display: none !important; } .cxz-article-card, .cxz-collect-card { box-shadow: none; border: 1px solid #ccc; } .cxz-content-lock::after { display: none; } } /* Article detail interactions */ .cxz-article-actions { justify-content: center; gap: 14px; padding: 20px 32px; } .cxz-action-btn { min-width: 118px; height: 44px; padding: 0 22px; border-radius: 999px; border: 1px solid #dbe2ee; background: #f7f9fc; color: #102b6a; font-size: 14px; font-weight: 700; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7); } .cxz-action-btn:hover { border-color: #102b6a; background: #fff; color: #102b6a; box-shadow: 0 8px 20px rgba(16, 43, 106, 0.12); } .cxz-action-btn.liked { border-color: rgba(241, 90, 34, 0.24); background: #fff3ec; color: #f15a22; } .cxz-action-btn.collected { border-color: rgba(253, 185, 51, 0.38); background: #fff8e8; color: #102b6a; } .cxz-action-btn:disabled { cursor: not-allowed; opacity: 0.72; box-shadow: none; } .cxz-article-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); } .cxz-recommend-section { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 24px; } .cxz-recommend-card { padding: 18px 20px; border: 1px solid #e7edf6; border-radius: 12px; background: #fff; box-shadow: var(--shadow-sm, 0 2px 8px rgba(0, 0, 0, 0.04)); } .cxz-recommend-title { margin-bottom: 12px; color: var(--primary); font-size: 16px; font-weight: 800; } .cxz-recommend-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; } .cxz-recommend-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; color: var(--text-muted); font-size: 13px; } .cxz-recommend-list a { overflow: hidden; color: var(--text-dark); text-overflow: ellipsis; white-space: nowrap; } .cxz-recommend-list a:hover { color: var(--primary); } .cxz-recommend-empty { grid-template-columns: 1fr !important; color: var(--text-muted); } .cxz-nav-item { position: relative; overflow: hidden; } .cxz-nav-item::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: #fdb933; opacity: 0; transition: opacity 0.2s ease; } .cxz-nav-item:hover::before { opacity: 1; } .cxz-nav-item.is-disabled { cursor: default; opacity: 0.54; pointer-events: none; } .cxz-nav-item.is-disabled:hover { border-color: var(--border-light, #e5e7eb); box-shadow: var(--shadow-sm, 0 2px 8px rgba(0,0,0,0.06)); transform: none; } .cxz-comment-section { margin-top: 24px; border-radius: 16px; background: #fff; box-shadow: 0 12px 34px rgba(16, 43, 106, 0.08); overflow: hidden; } .cxz-comment-header { padding: 18px 24px; border-bottom: 1px solid #e7edf6; color: #102b6a; font-weight: 800; } .cxz-comment-input-box { padding: 20px 24px; border-bottom: 1px solid #eef2f7; background: #f8fafd; } .cxz-comment-textarea { min-height: 104px; border-radius: 12px; border-color: #dbe2ee; background: #fff; } .cxz-comment-textarea:focus { border-color: #102b6a; box-shadow: 0 0 0 3px rgba(16, 43, 106, 0.1); } .cxz-comment-submit-btn { min-width: 112px; border-radius: 999px; background: linear-gradient(135deg, #102b6a, #1e5790); box-shadow: 0 8px 18px rgba(16, 43, 106, 0.18); } .cxz-comment-submit-btn:hover { background: linear-gradient(135deg, #0d245c, #194d83); } .cxz-comment-list { padding: 4px 24px 8px; } .cxz-comment-item { padding: 18px 0; } .cxz-comment-avatar, .cxz-comment-avatar-placeholder { width: 40px; height: 40px; } .cxz-article-body { overflow: hidden; } .cxz-content-inner { max-width: 100%; color: inherit; font-size: inherit; line-height: inherit; } .cxz-content-inner img, .cxz-content-inner video, .cxz-content-inner iframe { max-width: 100%; } .cxz-content-empty { margin: 0; padding: 32px 0; text-align: center; color: var(--text-muted, #8a96aa); } /* mianfei comment layout fix */ .cxz-comment-section { border: 1px solid #e7edf6; } @media (max-width: 768px) { .cxz-recommend-section { grid-template-columns: 1fr; } .cxz-recommend-list li { grid-template-columns: 1fr; gap: 4px; } } .cxz-comment-header { display: flex; align-items: center; gap: 8px; background: linear-gradient(180deg, #fbfcff, #fff); font-size: 16px; } .cxz-comment-header i { color: #102b6a; font-size: 18px; } .cxz-comment-input-box { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; } .cxz-comment-textarea { display: block; width: 100%; min-height: 108px; padding: 12px 14px; border: 1px solid #d7dfec; border-radius: 10px; color: #1f2f4d; font-size: 14px; line-height: 1.7; outline: none; resize: vertical; box-sizing: border-box; } .cxz-comment-textarea::placeholder { color: #8a96aa; } .cxz-comment-submit-btn { height: 36px; padding: 0 24px; border: 0; color: #fff; font-size: 14px; font-weight: 700; cursor: pointer; transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease; } .cxz-comment-submit-btn:disabled { cursor: not-allowed; opacity: 0.68; transform: none; box-shadow: none; } /* mianfei comment list polish */ .cxz-comment-textarea { resize: none; } .cxz-comment-list { padding: 18px 24px 8px; } .cxz-comment-empty { display: flex; min-height: 92px; align-items: center; justify-content: center; gap: 8px; color: #8a96aa; font-size: 14px; text-align: center; } .cxz-comment-empty i { color: #102b6a; font-size: 18px; opacity: 0.7; } .cxz-comment-item { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 14px; padding: 18px 0; border-bottom: 1px solid #eef2f7; } .cxz-comment-item:last-child { border-bottom: 0; } .cxz-comment-avatar, .cxz-comment-avatar-placeholder { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; } .cxz-comment-avatar-placeholder { display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #102b6a, #1e5790); color: #fff; font-weight: 800; } .cxz-comment-body { min-width: 0; } .cxz-comment-name { margin-bottom: 6px; color: #102b6a; font-size: 14px; font-weight: 800; } .cxz-comment-text { color: #1f2f4d; font-size: 14px; line-height: 1.7; word-break: break-word; white-space: pre-wrap; } .cxz-comment-time { margin-top: 8px; color: #8a96aa; font-size: 12px; } .cxz-pagination { padding: 12px 24px 18px; border-top: 1px solid #eef2f7; }