/* 20261024g 说书场 / 成就图鉴 */
#sh-cards { margin-top: 8px; }
#sh-cards.hidden { display: none !important; }
#sh-cards.sh-one { grid-template-columns: 1fr; }
.sh-card { min-height: 104px; }
.sh-card.sh-story { border-color: rgba(222,120,80,.6); background: radial-gradient(120% 80% at 0 0, rgba(222,110,70,.18), transparent 60%), linear-gradient(170deg, #22140c, #0b0705); }
.sh-card.sh-story .rkc-h i { background: radial-gradient(#ffd2b0, #b5532a); color: #2a0e04; }
.sh-card.sh-atlas { border-color: rgba(140,210,160,.55); background: radial-gradient(120% 80% at 100% 0, rgba(120,210,150,.16), transparent 60%), linear-gradient(170deg, #0f1c14, #060a07); align-items: flex-start; }
.sh-card.sh-atlas .rkc-h i { background: radial-gradient(#d8ffe2, #3f9a5a); color: #062012; }
.sh-card.sh-atlas .rkc-h b { color: #cff5d9; }
.sh-ti { font-size: 13px; color: #ffe1c4; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.sh-lead { margin: 0; font-size: 11px; line-height: 1.45; color: #d8bf98; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.sh-meta { margin-top: auto; font-size: 10.5px; color: #a8916a; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.sh-ring { --p: 0; display: grid; place-items: center; width: 54px; height: 54px; margin: 2px auto 0; border-radius: 50%; background: conic-gradient(#7fe0a0 calc(var(--p) * 1%), rgba(255,255,255,.08) 0); position: relative; }
.sh-ring::before { content: ""; position: absolute; inset: 6px; border-radius: 50%; background: #08100a; }
.sh-ring b { position: relative; font-size: 15px; color: #d9ffe5; } .sh-ring small { font-size: 9px; }
.sh-ring.big { width: 74px; height: 74px; margin: 0; } .sh-ring.big b { font-size: 20px; }
.sh-card.sh-atlas .sh-meta { white-space: normal; text-align: center; width: 100%; }
.sh-layer { position: fixed; inset: 0; z-index: 140; background: rgba(0,0,0,.72); display: flex; justify-content: center; align-items: stretch; }
.sh-panel { width: min(560px, 100%); display: flex; flex-direction: column; background: linear-gradient(180deg, #1c130b, #0c0805); color: #f3e0a6; font-family: "Noto Serif SC", serif; border-left: 1px solid rgba(212,175,55,.3); border-right: 1px solid rgba(212,175,55,.3); }
.sh-hd { display: flex; align-items: center; gap: 8px; padding: 10px 12px; padding-top: calc(10px + env(safe-area-inset-top, 0px)); border-bottom: 1px solid rgba(212,175,55,.35); }
.sh-hd b { font-size: 17px; color: #ffe39a; letter-spacing: .1em; } .sh-hd span { font-size: 11px; color: #a8916a; }
.sh-x { width: 30px; height: 30px; border-radius: 50%; border: 1px solid rgba(212,175,55,.5); background: transparent; color: #ffe39a; font-size: 18px; cursor: pointer; }
.sh-scroll { flex: 1; overflow: auto; padding: 12px 14px calc(20px + env(safe-area-inset-bottom, 0px)); -webkit-overflow-scrolling: touch; }
.sh-h2 { margin: 2px 0 8px; font-size: 20px; color: #ffd9a8; font-family: "Ma Shan Zheng", "Noto Serif SC", serif; letter-spacing: .06em; }
.sh-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 10px; }
.sh-tags span { font-size: 11px; padding: 2px 7px; border-radius: 10px; border: 1px solid rgba(212,175,55,.35); color: #e2c88e; }
.sh-tags .sh-hl { border-color: rgba(230,120,80,.6); color: #ffc19a; }
.sh-tags .sh-prot[data-uc]:not([data-uc=""]) { cursor: pointer; color: #ffe39a; }
.sh-text { font-size: 15px; line-height: 1.85; color: #f1dfbb; background: rgba(255,240,200,.04); border: 1px solid rgba(212,175,55,.2); border-radius: 10px; padding: 10px 12px; }
.sh-text p { margin: 0 0 6px; text-indent: 2em; } .sh-text p:first-child { text-indent: 0; }
.sh-pend { color: #a8916a; font-size: 12px; text-indent: 0 !important; }
.sh-sec { margin: 14px 0 6px; font-size: 14px; color: #ffe39a; } .sh-sec small { font-size: 11px; color: #8f7a4f; }
.sh-fr { min-height: 120px; padding: 8px; border-radius: 10px; background: rgba(0,0,0,.35); border: 1px solid rgba(212,175,55,.25); }
.sh-fr-msg { font-size: 13px; color: #ffd9a8; margin-bottom: 6px; }
.sh-fr-w { font-size: 11px; color: #8f7a4f; }
.sh-fr-nav { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin-top: 6px; font-size: 12px; }
.sh-acts { display: flex; gap: 10px; align-items: flex-start; margin-top: 14px; }
.sh-like { flex: 0 0 auto; } .sh-like.done { opacity: .7; }
.sh-tip { flex: 1; display: flex; flex-direction: column; gap: 4px; font-size: 13px; } .sh-tip small { color: #8f7a4f; font-size: 11px; }
.sh-tip-b { display: flex; gap: 5px; } .sh-tip-b .hud-btn { flex: 1; }
.sh-tip-st { color: #c9b27a !important; }
.sh-cmts ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.sh-cmts li { font-size: 13px; line-height: 1.5; } .sh-cmts li b { color: #ffe39a; margin-right: 6px; cursor: pointer; }
.sh-cmt-in { display: flex; gap: 6px; margin-top: 8px; } .sh-cmt-in input { flex: 1; min-width: 0; padding: 8px 10px; font-size: 16px; color: #f8ecd0; background: rgba(0,0,0,.35); border: 1px solid rgba(212,175,55,.5); border-radius: 8px; }
.sh-days { display: flex; justify-content: space-between; gap: 6px; margin-top: 16px; }
.sh-hist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.sh-hist li { display: grid; grid-template-columns: auto 1fr; gap: 2px 10px; padding: 9px 10px; border-radius: 10px; border: 1px solid rgba(212,175,55,.3); background: rgba(255,240,200,.04); cursor: pointer; }
.sh-hist li em { grid-row: span 2; font-style: normal; color: #ffc19a; font-size: 13px; align-self: center; } .sh-hist li b { color: #ffe39a; font-size: 14px; } .sh-hist li small { color: #a8916a; font-size: 11px; }
.sh-hist li.sh-empty { display: block; cursor: default; color: #a8916a; text-align: center; }
.sh-at-top { display: flex; gap: 14px; align-items: center; margin-bottom: 10px; } .sh-at-top b { color: #d9ffe5; }
.sh-badges { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; } .sh-badges small { color: #8f7a4f; font-size: 11px; }
.sh-badge { font-size: 11px; padding: 2px 7px; border-radius: 10px; background: rgba(127,224,160,.12); border: 1px solid rgba(127,224,160,.45); color: #cff5d9; }
.sh-tabs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 4px; padding-bottom: 4px; }
.sh-tabs button { min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; line-height: 1.25; padding: 5px 2px; border-radius: 9px; border: 1px solid rgba(212,175,55,.35); background: transparent; color: #e2c88e; font: inherit; font-size: 12px; cursor: pointer; }
.sh-tabs button small { font-size: 10px; color: #8f7a4f; } .sh-tabs button.on { background: rgba(212,175,55,.18); border-color: #ffe39a; color: #ffe39a; } .sh-tabs button.full { border-color: rgba(127,224,160,.7); }
.sh-grid { list-style: none; margin: 10px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 7px; }
.sh-grid li { display: flex; flex-direction: column; gap: 3px; padding: 9px 9px; border-radius: 10px; min-height: 54px; }
.sh-grid li.lit { border: 1px solid rgba(255,214,120,.75); background: radial-gradient(120% 90% at 0 0, rgba(255,210,110,.22), transparent 60%), #1a1309; box-shadow: 0 0 10px rgba(255,200,90,.18); }
.sh-grid li.lit b { color: #ffe39a; font-size: 15px; } .sh-grid li.lit small { color: #d7bd84; font-size: 11px; }
.sh-grid li.lock { border: 1px dashed rgba(160,150,130,.35); background: rgba(255,255,255,.02); filter: grayscale(1); opacity: .55; }
.sh-grid li.lock b { color: #a49c8c; font-size: 15px; } .sh-grid li.lock small { color: #8a8478; font-size: 11px; line-height: 1.35; }
.sh-at-foot { margin-top: 12px; display: flex; flex-direction: column; gap: 8px; align-items: center; text-align: center; } .sh-at-foot small { color: #a8916a; font-size: 12px; }
.uc-story, .uc-atlas { display: inline-block; margin: 4px 4px 0 0; font-size: 11px; padding: 1px 7px; border-radius: 10px; border: 1px solid rgba(230,120,80,.6); color: #ffc19a; }
.uc-atlas { border-color: rgba(127,224,160,.5); color: #cff5d9; }

/* 20261024j 主角头像 */
.sh-av { width: 1.25em; height: 1.25em; border-radius: 50%; object-fit: cover; vertical-align: middle; margin: -.15em .25em 0 .1em; border: 1px solid rgba(212,175,55,.6); background: #1a1408; flex: 0 0 auto; display: inline-block; }
/* 20261024j 关键时刻：标准牌面网格（.cin-grid 同电影院），胡张描金同擂台战报；花牌一行 */
.sh-fr .cin-grid.sh-g { margin: 2px 0 6px; }
.sh-fr .cin-grid .cg-win { outline: 2px solid #ffd45a; border-radius: 4px; filter: brightness(1.08); }
.sh-fl36 { display: flex; align-items: center; gap: 2px; margin: 0 0 4px; }
.sh-fl36 .fl-lab { font-size: 11px; color: #c9a45c; margin-right: 4px; }
.sh-fl36 img { width: 26px; height: auto; display: block; }

/* 20261024l 成就图鉴 · 书（封面 / 目录 / 五章图标页 / 封底） */
.sh-layer.ab-layer { background: radial-gradient(120% 80% at 50% 30%, rgba(40,24,10,.92), rgba(0,0,0,.94)); }
.sh-panel.ab-panel { position: relative; width: min(520px, 100%); overflow: hidden; border: 0; background:
  repeating-linear-gradient(92deg, rgba(255,220,160,.025) 0 2px, transparent 2px 9px), linear-gradient(180deg, #2b1b0e, #140b05); }
.ab-top { display: flex; align-items: center; gap: 8px; padding: 8px 12px; padding-top: calc(8px + env(safe-area-inset-top, 0px)); }
.ab-top b { font-family: "Ma Shan Zheng", "Noto Serif SC", serif; font-weight: 400; font-size: 20px; color: #ffe39a; letter-spacing: .12em; }
.ab-top span { margin-left: auto; font-size: 12px; color: #c9a86a; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ab-stage { flex: 1; min-height: 0; padding: 2px 10px 0; perspective: 1700px; touch-action: pan-y; user-select: none; -webkit-user-select: none; }
.ab-book { position: relative; height: 100%; border-radius: 6px 14px 14px 6px; background: radial-gradient(140% 90% at 30% 10%, #6e3219, #3a170a 70%); box-shadow: 0 14px 30px rgba(0,0,0,.6), inset 0 0 0 1px rgba(255,210,140,.18); transform-style: preserve-3d; }
.ab-book::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 12px; border-radius: 6px 0 0 6px; background: linear-gradient(90deg, #2a0f05, #6a2e15 45%, #2a0f05); z-index: 4; box-shadow: 2px 0 4px rgba(0,0,0,.5); }
.ab-book::after { content: ""; position: absolute; top: 9px; bottom: 9px; right: 2px; width: 4px; border-radius: 0 4px 4px 0; background: repeating-linear-gradient(180deg, #e9d8b0 0 1px, #bfa676 1px 2px); z-index: 0; } /* 书页侧边 */
.ab-page { position: absolute; top: 6px; bottom: 6px; left: 12px; right: 6px; border-radius: 2px 10px 10px 2px; overflow: hidden; transform-origin: left center; backface-visibility: hidden; -webkit-backface-visibility: hidden; z-index: 1; }
.ab-leaf { z-index: 3; will-change: transform; box-shadow: 6px 0 18px rgba(0,0,0,.35); }
.ab-shade { position: absolute; inset: 0; pointer-events: none; opacity: 0; background: linear-gradient(90deg, rgba(0,0,0,0), rgba(40,20,5,.35) 60%, rgba(0,0,0,.6)); }
/* 纸页 */
.ab-paper { position: relative; height: 100%; display: flex; flex-direction: column; padding: 14px 14px 8px 20px; box-sizing: border-box; color: #3a2412; font-family: "Noto Serif SC", serif; background:
  linear-gradient(90deg, rgba(90,55,20,.32), rgba(90,55,20,0) 7%), radial-gradient(60% 40% at 85% 12%, rgba(160,110,40,.12), transparent 70%), radial-gradient(50% 35% at 15% 88%, rgba(150,95,35,.12), transparent 70%), linear-gradient(180deg, #f5e8c9, #ead8b0); }
.ab-paper::before { content: ""; position: absolute; inset: 8px 8px 8px 14px; border: 1px solid rgba(140,90,30,.35); border-radius: 2px; pointer-events: none; }
.ab-ph { position: relative; text-align: center; }
.ab-ph small { display: block; font-size: 12px; color: #a8281e; letter-spacing: .3em; }
.ab-ph h3 { margin: 2px 0 4px; font-family: "Ma Shan Zheng", "Noto Serif SC", serif; font-weight: 400; font-size: 30px; line-height: 1.15; color: #3a1f0c; letter-spacing: .12em; }
.ab-ph p { margin: 6px 6px 0; font-size: 12.5px; line-height: 1.7; color: #6b4a26; }
.ab-bar { width: 62%; height: 5px; margin: 2px auto 3px; border-radius: 3px; background: rgba(120,80,30,.2); overflow: hidden; }
.ab-bar i { display: block; height: 100%; background: linear-gradient(90deg, #c9902a, #ffd56a); }
.ab-cnt { font-size: 12px; color: #7a5a30; }
.ab-folio { margin-top: auto; text-align: center; font-size: 12px; color: #8a6a3a; letter-spacing: .2em; padding-top: 2px; }
/* 图标格 */
.ab-grid { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; align-content: center; flex: 1; min-height: 0; }
.ab-grid li { width: 33.333%; display: flex; justify-content: center; }
.ab-it { display: flex; flex-direction: column; align-items: center; gap: 1px; width: 100%; padding: 5px 2px 6px; background: none; border: 0; border-radius: 10px; font: inherit; color: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.ab-it:active { background: rgba(150,100,30,.12); }
.ab-ic { position: relative; width: 68px; height: 68px; display: block; }
.ab-grid.n5 .ab-ic, .ab-grid.n6 .ab-ic { width: 84px; height: 84px; }
.ab-grid.n5 li, .ab-grid.n6 li { margin: 6px 0; }
.ab-svg { display: block; width: 100%; height: 100%; }
.ab-it.lit .ab-svg { filter: drop-shadow(0 0 5px rgba(255,196,70,.75)) drop-shadow(0 2px 2px rgba(60,30,0,.35)); }
.ab-it b { font-size: 13px; line-height: 1.25; margin-top: 3px; white-space: nowrap; }
.ab-it small { font-size: 11px; line-height: 1.2; }
.ab-it.lit b { color: #3a1f0c; } .ab-it.lit small { color: #a8281e; font-weight: 700; }
.ab-it.lock .ab-svg, .ab-toc-ic.lock .ab-svg, .ab-toc-ic.lock .ab-seal-svg, .ab-card.lock .ab-svg { filter: grayscale(1) brightness(.62) contrast(.85); opacity: .42; }
.ab-it.lock b { color: #8b7656; font-weight: 500; } .ab-it.lock small { color: #a8977a; }
.ab-lock { position: absolute; right: -2px; bottom: 0; width: 22px; height: 22px; border-radius: 50%; background: #5b4a36 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10V8a5 5 0 0 1 10 0v2' fill='none' stroke='%23f1e2bf' stroke-width='2.2'/%3E%3Crect x='5' y='10' width='14' height='10' rx='2' fill='%23f1e2bf'/%3E%3Ccircle cx='12' cy='15' r='1.6' fill='%235b4a36'/%3E%3C/svg%3E") center / 14px no-repeat; border: 1.5px solid #ead8b0; box-shadow: 0 1px 2px rgba(0,0,0,.3); }
.ab-lock.big { width: 34px; height: 34px; background-size: 20px; right: 4px; bottom: 4px; }
/* 整章：朱印 + 领取 */
.ab-ch.is-full::before { border-color: rgba(201,144,42,.75); box-shadow: inset 0 0 0 2px rgba(255,213,106,.25); }
.ab-seal { position: absolute; top: 12px; right: 14px; width: 66px; height: 66px; transform: rotate(-13deg); opacity: .9; mix-blend-mode: multiply; z-index: 2; pointer-events: none; }
.ab-seal svg, .ab-bigseal svg { width: 100%; height: 100%; display: block; }
.ab-seal.fresh { animation: ab-stamp .55s cubic-bezier(.2,1.4,.4,1) both .25s; }
@keyframes ab-stamp { 0% { transform: rotate(-13deg) scale(2.2); opacity: 0; } 60% { opacity: .95; } 100% { transform: rotate(-13deg) scale(1); opacity: .9; } }
.ab-foot { text-align: center; padding: 4px 0 0; min-height: 40px; display: flex; align-items: center; justify-content: center; }
.ab-claim { padding: 9px 14px; border-radius: 22px; border: 1.5px solid #ffd56a; background: linear-gradient(180deg, #c3341f, #7c160c); color: #fff0c4; font: inherit; font-size: 13.5px; font-weight: 700; letter-spacing: .03em; cursor: pointer; box-shadow: 0 0 0 3px rgba(195,52,31,.18), 0 3px 8px rgba(90,20,5,.4); animation: ab-glow 1.8s ease-in-out infinite; }
.ab-claim:disabled { opacity: .6; animation: none; }
@keyframes ab-glow { 50% { box-shadow: 0 0 0 6px rgba(255,200,90,.25), 0 3px 10px rgba(90,20,5,.45); } }
.ab-left { font-size: 12px; color: #7a5a30; } .ab-left b { color: #a8281e; }
.ab-done { font-size: 12px; color: #a8281e; padding: 4px 10px; border: 1px dashed rgba(168,40,30,.5); border-radius: 12px; }
/* 皮面：封面 / 封底 */
.ab-leather { position: relative; height: 100%; box-sizing: border-box; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 26px 22px; text-align: center; color: #f3e0a6; font-family: "Noto Serif SC", serif; background:
  radial-gradient(3px 3px at 20% 30%, rgba(0,0,0,.18), transparent), radial-gradient(120% 80% at 30% 15%, #7d3a1d, #4a1c0b 60%, #2c0f05); }
.ab-leather::before { content: ""; position: absolute; inset: 10px; border: 1.5px dashed rgba(232,190,110,.55); border-radius: 6px; pointer-events: none; }
.ab-leather::after { content: ""; position: absolute; inset: 17px; border: 1px solid rgba(232,190,110,.4); border-radius: 3px; pointer-events: none; }
.ab-corner { position: absolute; width: 22px; height: 22px; border: 3px solid #d9a734; z-index: 1; }
.ab-corner.tl { top: 22px; left: 22px; border-right: 0; border-bottom: 0; } .ab-corner.tr { top: 22px; right: 22px; border-left: 0; border-bottom: 0; }
.ab-corner.bl { bottom: 22px; left: 22px; border-right: 0; border-top: 0; } .ab-corner.br { bottom: 22px; right: 22px; border-left: 0; border-top: 0; }
.ab-kick { font-size: 12px; letter-spacing: .4em; color: #d9b874; }
.ab-title { margin: 0; font-family: "Ma Shan Zheng", "Noto Serif SC", serif; font-weight: 400; font-size: 50px; line-height: 1.1; letter-spacing: .14em; padding-left: .14em; color: #f7d77e; background: linear-gradient(180deg, #fff3c4, #e1ad3e 55%, #9a6514); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; filter: drop-shadow(0 2px 0 rgba(30,8,0,.7)) drop-shadow(0 0 10px rgba(255,200,90,.25)); }
.ab-title.sm { font-size: 38px; }
.ab-rule { display: flex; align-items: center; gap: 8px; width: 70%; color: #d9a734; font-size: 10px; } .ab-rule span { flex: 1; height: 1px; background: linear-gradient(90deg, transparent, #d9a734, transparent); }
.ab-medal { --p: 0; position: relative; width: 132px; height: 132px; margin-top: 6px; border-radius: 50%; display: grid; place-items: center; background: conic-gradient(#ffd56a calc(var(--p) * 1%), rgba(255,230,170,.14) 0); box-shadow: 0 0 0 3px #3a1608, 0 0 0 5px #b8862a, 0 6px 16px rgba(0,0,0,.5); }
.ab-medal::before { content: ""; position: absolute; inset: 7px; border-radius: 50%; background: #2a0f05; }
.ab-medal img { position: relative; width: 106px; height: 106px; border-radius: 50%; object-fit: cover; border: 2px solid #d9a734; background: #1a1408; }
.ab-owner { font-size: 17px; color: #fff0c4; letter-spacing: .06em; max-width: 90%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ab-pct { display: flex; flex-direction: column; align-items: center; line-height: 1.1; }
.ab-pct b { font-size: 34px; color: #ffd56a; font-family: "Noto Serif SC", serif; } .ab-pct b small { font-size: 16px; } .ab-pct span { font-size: 12.5px; color: #d9b874; margin-top: 2px; }
.ab-chaps { display: flex; gap: 8px; margin-top: 6px; }
.ab-chaps span { display: flex; flex-direction: column; align-items: center; gap: 2px; width: 42px; }
.ab-chaps .ab-svg { width: 38px; height: 38px; filter: grayscale(.75) brightness(.8); opacity: .75; } .ab-chaps .full .ab-svg { filter: drop-shadow(0 0 5px rgba(255,200,80,.7)); opacity: 1; }
.ab-chaps em { font-style: normal; font-size: 10.5px; color: #d9b874; }
.ab-bdg { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px; max-width: 92%; }
.ab-bdg span { font-size: 11px; padding: 1px 8px; border-radius: 10px; border: 1px solid rgba(255,90,60,.55); background: rgba(180,34,26,.35); color: #ffd9c8; }
.ab-hint { position: absolute; bottom: 30px; left: 0; right: 0; font-size: 12px; color: #d9b874; animation: ab-blink 2.4s ease-in-out infinite; }
@keyframes ab-blink { 50% { opacity: .45; } }
.ab-bigseal { width: 150px; height: 150px; transform: rotate(-8deg); margin: 10px 0; filter: drop-shadow(0 3px 6px rgba(0,0,0,.45)); }
.ab-bigseal.lock { filter: grayscale(1) brightness(.75); opacity: .35; }
.ab-back-t { margin: 0; font-size: 14px; line-height: 1.8; color: #f1dcb0; }
.ab-left.gold, .ab-done.gold { color: #ffd9a0; border-color: rgba(255,213,106,.5); }
/* 目录 */
.ab-toc { list-style: none; margin: 12px 0 0; padding: 0 4px; display: flex; flex-direction: column; gap: 4px; }
.ab-toc li { display: flex; align-items: center; gap: 10px; padding: 7px 6px; border-radius: 8px; cursor: pointer; }
.ab-toc li:active { background: rgba(150,100,30,.12); }
.ab-toc-ic { width: 46px; height: 46px; flex: 0 0 auto; } .ab-toc-ic svg { width: 100%; height: 100%; display: block; }
.ab-toc-t { display: flex; flex-direction: column; line-height: 1.25; } .ab-toc-t em { font-style: normal; font-size: 11px; color: #a8281e; letter-spacing: .15em; } .ab-toc-t b { font-size: 16px; color: #3a1f0c; }
.ab-lead { flex: 1; align-self: flex-end; margin-bottom: 10px; border-bottom: 1.5px dotted rgba(120,80,30,.45); }
.ab-toc-n { font-size: 13px; color: #7a5a30; min-width: 38px; text-align: right; }
.ab-toc-all { margin-top: 6px; border-top: 1px solid rgba(140,90,30,.25); padding-top: 11px !important; }
.ab-mini-seal { display: inline-block; padding: 1px 4px; font-size: 11px; color: #f6e6cf; background: #b5221a; border-radius: 2px; transform: rotate(-6deg); }
/* 翻页条 */
.ab-nav { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 8px 12px calc(10px + env(safe-area-inset-bottom, 0px)); }
.ab-arw { width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(217,167,52,.7); background: rgba(0,0,0,.25); color: #ffe39a; font-size: 22px; line-height: 1; cursor: pointer; }
.ab-arw:disabled { opacity: .3; }
.ab-dots { display: flex; gap: 6px; align-items: center; }
.ab-dots button { width: 8px; height: 8px; padding: 0; border-radius: 4px; border: 0; background: rgba(243,224,166,.3); cursor: pointer; transition: width .2s; }
.ab-dots button.full { background: #c8321f; } .ab-dots button.on { width: 20px; background: #ffd56a; }
/* 详情签 */
.ab-pop { position: absolute; inset: 0; z-index: 10; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(10,5,0,.62); }
.ab-pop.hidden { display: none; }
.ab-card { position: relative; width: min(310px, 100%); box-sizing: border-box; padding: 18px 18px 16px; text-align: center; color: #3a2412; font-family: "Noto Serif SC", serif; border-radius: 6px; background: linear-gradient(180deg, #f7ebcf, #e8d4a8); box-shadow: 0 0 0 4px #5a2612, 0 0 0 5.5px #d9a734, 0 18px 40px rgba(0,0,0,.6); animation: ab-pop .22s ease-out; }
@keyframes ab-pop { from { transform: scale(.9); opacity: 0; } }
.ab-card-x { position: absolute; top: 6px; right: 8px; width: 30px; height: 30px; border: 0; background: none; font-size: 22px; color: #7a5a30; cursor: pointer; }
.ab-card-ch { font-size: 12px; color: #a8281e; letter-spacing: .15em; }
.ab-card-ic { position: relative; width: 132px; height: 132px; margin: 8px auto 2px; }
.ab-card.lit .ab-svg { filter: drop-shadow(0 0 10px rgba(255,190,60,.85)); }
.ab-card h4 { margin: 4px 0 8px; font-family: "Ma Shan Zheng", "Noto Serif SC", serif; font-weight: 400; font-size: 30px; color: #3a1f0c; letter-spacing: .1em; }
.ab-card dl { margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.ab-card dl div { padding: 6px 2px; border: 1px solid rgba(140,90,30,.3); border-radius: 6px; background: rgba(255,255,255,.3); }
.ab-card dt { font-size: 11px; color: #8a6a3a; } .ab-card dd { margin: 2px 0 0; font-size: 13px; font-weight: 700; color: #a8281e; }
.ab-card-h { margin: 10px 0 0; font-size: 12.5px; line-height: 1.6; color: #6b4a26; }
.ab-card-h b { display: block; font-size: 12px; color: #a8281e; letter-spacing: .2em; margin-bottom: 2px; }
.ab-card-st { margin: 0; font-size: 14px; color: #8b7656; letter-spacing: .3em; }
@media (prefers-reduced-motion: reduce) { .ab-seal.fresh, .ab-claim, .ab-hint, .ab-card { animation: none; } }
.ab-ch.is-full .ab-bar { width: 44%; }
.ab-grid.n9 .ab-ic { width: 78px; height: 78px; } .ab-grid.n9 li { margin: 4px 0; }
.ab-foot { margin-bottom: 4px; }
.ab-toc { gap: 9px; }
/* 20261027a 青龙阁入口（说书全文页底部「本期画报」、书场旧档页头） */
.sh-ql{display:block;width:100%;margin:10px 0 4px;text-align:center;border-color:rgba(212,175,55,.7);color:#ffd76a}
.sh-ql small{opacity:.7;font-size:11px}
.sh-hd .sh-ql-h{margin-left:auto;font-size:12px;padding:3px 10px}

/* 20261027b 评论点赞 / 不上画报 */
.sh-cmts li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 6px; } .sh-cmts li span { flex: 1 1 60%; min-width: 0; overflow-wrap: anywhere; }
.sh-cmt-lk, .sh-cmt-np { flex: none; font: inherit; font-size: 12px; line-height: 1.4; padding: 1px 8px; border-radius: 10px; border: 1px solid rgba(212,175,55,.35); background: transparent; color: #cdb98a; cursor: pointer; font-style: normal; }
.sh-cmt-lk i { font-style: normal; } .sh-cmt-lk.done { color: #ff8a8a; border-color: rgba(255,138,138,.55); } .sh-cmt-lk.mine { cursor: default; opacity: .7; border-color: transparent; }
.sh-cmt-np.on { color: #9aa; border-style: dashed; } .sh-cmt-lk:disabled, .sh-cmt-np:disabled { opacity: .5; }
/* 20261027c 个人页：我的画报 / 书场头版 */
.uc-ql { display: inline-block; margin: 4px 4px 0 0; font: inherit; font-size: 11px; line-height: 1.5; padding: 1px 8px; border-radius: 10px; border: 1px solid rgba(127,232,214,.6); background: transparent; color: #9ff0e2; cursor: pointer; }
.uc-qltop { display: inline-block; margin: 4px 4px 0 0; font-size: 11px; padding: 1px 7px; border-radius: 3px; background: #b8312f; color: #fff; letter-spacing: 1px; }
