/* ==========================================================================
   9Prep — Thư viện Ebook (page-9p-ebooks.php)
   Cần 9p-chrome.css + 9p-core.css
   ========================================================================== */
.np-eb{padding-top:52px}

/* lọc nhóm */
.np-eb-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.np-page button.np-eb-chip{appearance:none;display:inline-flex;align-items:center;gap:7px;min-height:42px;margin:0;padding:9px 16px;border:1px solid var(--np-line);border-radius:999px;background:#fff;box-shadow:none;cursor:pointer;font-family:var(--np-display);font-size:13.5px;font-weight:700;text-transform:none;letter-spacing:0;color:var(--np-ink2);transition:background .16s,border-color .16s,color .16s}
.np-page button.np-eb-chip:hover{border-color:#b9ab9d}
.np-eb-chip span{font-size:11.5px;font-weight:800;color:var(--np-muted)}
.np-page button.np-eb-chip.is-on{background:var(--np-ink);border-color:var(--np-ink);color:#fff}
.np-eb-chip.is-on span{color:var(--np-yellow)}

/* lưới ebook */
.np-eb-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.np-page a.np-eb-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--np-line);border-radius:16px;overflow:hidden;color:var(--np-ink)!important;text-decoration:none;box-shadow:0 8px 24px rgba(46,35,25,.04);transition:transform .18s,box-shadow .18s,border-color .18s}
.np-page a.np-eb-card:hover{transform:translateY(-4px);border-color:var(--np-brand);box-shadow:0 22px 44px -22px rgba(46,35,25,.55)}
.np-page a.np-eb-card:focus-visible{outline:3px solid var(--np-yellow);outline-offset:3px}
.np-eb-card[hidden]{display:none}

.np-eb-cover{position:relative;display:block;aspect-ratio:3/4;background:var(--np-cream2);overflow:hidden}
.np-eb-cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s}
.np-eb-card:hover .np-eb-cover img{transform:scale(1.04)}
.np-eb-noimg{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;gap:7px;padding-bottom:34%;background:linear-gradient(150deg,#241f1b,#191714)}
.np-eb-noimg i{display:block;width:9px;border-radius:4px;background:var(--np-brand)}
.np-eb-noimg i:nth-child(1){height:22px}.np-eb-noimg i:nth-child(2){height:38px}
.np-eb-noimg i:nth-child(3){height:54px;background:var(--np-yellow)}.np-eb-noimg i:nth-child(4){height:30px}
.np-eb-badge{position:absolute;top:12px;right:12px;padding:6px 12px;border-radius:999px;background:rgba(25,23,20,.88);color:#fff;font-family:var(--np-display);font-size:12.5px;font-weight:800;line-height:1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.np-eb-badge.is-free{background:var(--np-green)}

.np-eb-body{display:flex;flex-direction:column;flex:1;padding:16px 18px 18px}
.np-eb-kick{font-family:var(--np-display);font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--np-brand);margin-bottom:6px}
.np-eb-title{display:block;font-family:var(--np-display);font-size:16.5px;font-weight:800;line-height:1.35;letter-spacing:-.015em;margin-bottom:7px}
.np-eb-card:hover .np-eb-title{color:var(--np-brand)}
.np-eb-desc{display:block;font-size:13.5px;line-height:1.55;color:var(--np-ink2);margin-bottom:14px;flex:1}
.np-eb-go{display:inline-flex;align-items:center;gap:6px;font-family:var(--np-display);font-size:13px;font-weight:800;color:var(--np-brand);border-bottom:2px solid var(--np-yellow);align-self:flex-start;padding-bottom:1px}
.np-eb-go i{font-style:normal;transition:transform .16s}
.np-eb-card:hover .np-eb-go i{transform:translateX(3px)}

.np-page main .np-eb-none{margin:28px 0 0;text-align:center;font-size:18px;color:var(--np-muted)}
.np-eb-empty{max-width:540px;margin:10px auto;text-align:center;padding:48px 28px;background:#fff;border:1px solid var(--np-line);border-radius:18px}
.np-page main .np-eb-empty h2{font-size:23px;margin-bottom:8px}
.np-page main .np-eb-empty p{color:var(--np-ink2);margin-bottom:20px}

@media (max-width:1100px){ .np-eb-grid{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:820px){ .np-eb-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:460px){
  .np-eb-grid{grid-template-columns:1fr;gap:14px}
  .np-page a.np-eb-card{flex-direction:row}
  .np-eb-cover{width:120px;flex:0 0 120px;aspect-ratio:3/4}
  .np-eb-badge{top:8px;right:8px;padding:4px 9px;font-size:11px}
  .np-eb-desc{display:none}
}
