/* 资料库模块共用样式（library.html / category.html / member.html） */
:root {
  --brand: #4A6CF7; --brand-deep: #2B3A6B; --brand-light: #EEF2FF;
  --bg: #F5F6FA; --card: #FFFFFF; --text: #1A1B2E; --text2: #6B7280; --text3: #9AA0A6;
  --danger: #E5484D; --success: #2E9E6B; --radius: 14px; --shadow: 0 2px 12px rgba(30,42,90,.06);
}
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); font-family:'PingFang SC','Microsoft YaHei',Arial,sans-serif; color:var(--text); padding-bottom:62px; }
.top { background:linear-gradient(135deg,#2B3A6B,#4A6CF7); color:#fff; padding:15px 20px; display:flex; align-items:center; justify-content:space-between; position:sticky; top:0; z-index:10; box-shadow:0 4px 16px rgba(43,58,107,.18); }
.top .title { font-size:17px; font-weight:700; letter-spacing:.5px; }
.top a { color:rgba(255,255,255,.85); text-decoration:none; font-size:13px; flex:none; background:rgba(255,255,255,.14); padding:6px 13px; border-radius:18px; }
.wrap { max-width:480px; margin:0 auto; padding:5px 16px 24px; }
.search-row { display:flex; gap:8px; margin-bottom:5px; }
.search-row input { flex:1; min-width:0; border:1px solid #E5E7EB; border-radius:10px; padding:10px 12px; font-size:14px; outline:none; background:#fff; }
.search-row input:focus { border-color:var(--brand); }
.search-row button { flex:none; border:none; border-radius:10px; padding:0 16px; background:var(--brand); color:#fff; font-size:14px; font-weight:600; cursor:pointer; }
.banner { width:100%; border-radius:12px; margin:0 0 5px; display:block; }
.grade-bar { display:grid; grid-template-columns:repeat(5,1fr); column-gap:8px; row-gap:5px; margin-bottom:5px; }
.gbtn { border:1px solid #E0E4F0; background:#fff; color:#4B5563; border-radius:10px; padding:8px 4px; font-size:13px; cursor:pointer; transition:all .15s; text-align:center; }
.gbtn.on { background:var(--brand); border-color:var(--brand); color:#fff; font-weight:600; }
.count-line { font-size:12.5px; color:var(--text3); margin-bottom:5px; }

/* 资料卡片：预览图 + 标题（用户锁定，不加其它元素） */
.card-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.lib-card { background:var(--card); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); cursor:pointer; }
.lib-card .cv { width:100%; aspect-ratio:3/4; background:linear-gradient(135deg,#EEF1F8,#E3E9FB); display:flex; align-items:center; justify-content:center; color:var(--text3); font-size:12px; }
.lib-card .cv img { width:100%; height:100%; object-fit:cover; display:block; }
.lib-card .nm { padding:8px 10px; font-size:13px; font-weight:600; color:var(--text); line-height:1.35; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.empty { text-align:center; color:var(--text3); font-size:14px; padding:40px 0; }

/* 底部导航：首页 / 分类 / 年度会员（仅资料库 3 页使用） */
.nav-bar { position:fixed; left:0; right:0; bottom:0; display:flex; background:#fff; border-top:1px solid #F1F0EC; z-index:20; }
.nav-item { flex:1; text-align:center; padding:8px 0 7px; color:#8A94A6; text-decoration:none; font-size:11px; }
.nav-item .icon { display:block; font-size:19px; margin-bottom:2px; }
.nav-item.active { color:var(--brand); font-weight:600; }

/* 详情弹窗 */
.mask { position:fixed; inset:0; background:rgba(15,20,40,.55); z-index:60; display:flex; align-items:flex-end; justify-content:center; }
.sheet { width:100%; max-width:480px; background:#fff; border-radius:18px 18px 0 0; padding:18px 18px 26px; max-height:86vh; overflow-y:auto; }
.sheet .big { width:100%; border-radius:12px; background:#EEF1F8; display:flex; align-items:center; justify-content:center; color:var(--text3); font-size:13px; min-height:150px; }
.sheet .big img { width:100%; border-radius:12px; display:block; }
.sheet .st { font-size:17px; font-weight:700; margin:12px 0 6px; line-height:1.4; }
.sheet .meta { font-size:12.5px; color:var(--text3); margin-bottom:10px; line-height:1.7; }
.btn { display:block; width:100%; margin-top:14px; padding:13px; background:linear-gradient(135deg,#4A6CF7,#3B5BDB); color:#fff; border:none; border-radius:13px; font-size:15px; font-weight:600; cursor:pointer; text-align:center; text-decoration:none; box-shadow:0 4px 14px rgba(74,108,247,.28); }
.btn:active { opacity:.88; }
.btn-green { background:linear-gradient(135deg,#22C55E,#16A34A); box-shadow:0 4px 14px rgba(34,197,94,.28); }
.btn-gray { background:#EFF2FA; color:#3E5FBF; box-shadow:none; }
.frow { display:flex; align-items:center; gap:10px; padding:9px 0; border-bottom:1px solid #F1F0EC; }
.frow:last-child { border-bottom:none; }
.fno { flex:none; width:24px; height:24px; border-radius:7px; background:#EFF2FA; color:#3E5FBF; font-size:12px; font-weight:700; display:inline-flex; align-items:center; justify-content:center; }
.ftitle { flex:1; min-width:0; font-size:13.5px; color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dl { flex:none; font-size:12.5px; color:#fff; background:#3E5FBF; text-decoration:none; padding:5px 12px; border-radius:999px; font-weight:600; }
.note { font-size:12px; color:var(--text3); margin-top:10px; line-height:1.7; }
.pts { display:inline-block; padding:3px 10px; border-radius:999px; font-size:12px; font-weight:700; }
.pts-buy { background:#FDF2E4; color:#C7740E; }
.pts-free { background:#E7F5EC; color:#16A34A; }
.pts-mem { background:#E7EAFB; color:#3E5FBF; }
.member-banner { background:linear-gradient(135deg,#2B3A6B,#4A6CF7); color:#fff; border-radius:14px; padding:20px 18px; margin:5px 0 12px; }
.member-banner .mb-t { font-size:19px; font-weight:800; margin-bottom:6px; }
.member-banner .mb-s { font-size:13px; opacity:.9; line-height:1.7; }
