/* ===== Interactive stacked card deck (Sách) ===== */
.elc-sach-card-deck { position: relative; width: 100%; height: 100%; min-height: 384px; }
.elc-sach-deck-card { position: absolute; inset: 0; border-radius: 18px; overflow: hidden; background: #fff; box-shadow: 0 10px 26px rgba(0,0,0,.16); transition: transform .42s cubic-bezier(.2,.8,.3,1), opacity .42s ease; transform-origin: center bottom; }
.elc-sach-deck-card:not(.is-top) { pointer-events: none; }
.elc-sach-deck-card.is-top { cursor: pointer; box-shadow: 0 18px 42px rgba(0,0,0,.24); }
.elc-sach-deck-card img { width: 100%; height: 100%; object-fit: cover; display: block; }
.elc-sach-deck-ph { width: 100%; height: 100%; display: grid; place-items: center; background: linear-gradient(160deg,#4b8ede,#78afe9); color: #fff; font-size: 40px; font-weight: 800; }
.elc-sach-deck-card.is-top:hover { animation: elc-sach-deck-jitter .4s ease-in-out infinite; }
@keyframes elc-sach-deck-jitter { 0%,100% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(-1.5px,-1px) rotate(-.7deg); } 50% { transform: translate(1.5px,1px) rotate(.7deg); } 75% { transform: translate(-1px,.5px) rotate(-.4deg); } }
.elc-sach-deck-card.is-top.is-dropping { animation: none; transform: translateY(var(--drop-y,50px)) rotate(var(--drop-rotate,3deg)) scale(.97); opacity: .9; }
.elc-sach-gamification-row { display: grid; grid-template-columns: 6fr 1fr 8fr; gap: 20px; align-items: stretch; margin-top: 30px; }
.elc-sach-gamification-col { min-width: 0; display: flex; flex-direction: column; }
.elc-sach-gamification-spacer { min-width: 0; }
.elc-vocab-top-students { background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; box-shadow: 0 4px 16px rgba(0,0,0,.08); padding: 18px 20px; width: 100%; min-width: 0; box-sizing: border-box; font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; height: 100%; display: flex; flex-direction: column; justify-content: space-evenly; }
.elc-vocab-top-students h3 { margin: 0 0 14px; font-size: 18px; text-align: center; color: #4B8EDE; font-weight: 700; font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.elc-vocab-top-students ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; flex: 1; justify-content: space-evenly; }
.elc-vocab-top-students li { display: flex; align-items: center; gap: 10px; font-size: 16px; min-width: 0; }
.elc-vocab-top-rank { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; flex-shrink: 0; border-radius: 50%; background: #EBF7FF; color: #4B8EDE; font-size: 13px; font-weight: 800; }
.elc-vocab-top-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.elc-vocab-top-count { color: #6b7280; font-size: 14px; font-weight: 600; }
.elc-vocab-streak-line { font-size: 15px; color: #4b5563; line-height: 1.6; }
.elc-vocab-streak-divider { margin-top: 14px; padding-top: 14px; border-top: 1px solid #f3f4f6; }
.elc-vocab-top-students li:nth-child(-n+3) .elc-vocab-top-name { color: inherit; font-weight: 400; }
@media (max-width: 900px) { .elc-sach-gamification-row { grid-template-columns: 1fr; } }
