/* ===========================================================
   DECHEPRO — light editorial page system
   Extends styles.css tokens (ocean-blue + gold). Light theme.
   =========================================================== */

/* header (reuse .hdr from styles.css but ensure light) */
.dcp-hdr { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; height: 72px; display: flex; align-items: center; transition: background .4s, border-color .4s, box-shadow .4s; border-bottom: 1px solid transparent; }
.dcp-hdr.solid { background: rgba(237,241,245,0.86); backdrop-filter: blur(14px); border-bottom-color: var(--line); }
.dcp-hdr__in { display: flex; align-items: center; justify-content: space-between; width: 100%; }
.dcp-brand { display: flex; align-items: center; gap: 11px; font-family: var(--serif); font-weight: 600; font-size: 20px; }
.dcp-brand img { height: 30px; width: auto; display: block; }
.dcp-brand .tag { font-family: var(--sans); font-size: 9.5px; letter-spacing: 0.26em; font-weight: 700; color: var(--muted); }
.dcp-nav { display: flex; align-items: center; gap: 6px; }
.dcp-nav a { padding: 9px 15px; font-size: 14.5px; font-weight: 500; border-radius: 100px; transition: background .3s, color .3s; cursor: pointer; }
.dcp-nav a:hover { background: rgba(13,31,51,0.06); }
.dcp-nav a.active { color: var(--accent); }

/* pill / eyebrow */
.dcp-pill { display: inline-flex; align-items: center; gap: 9px; padding: 8px 16px; border-radius: 100px; border: 1px solid var(--line); background: var(--paper-card); font-size: 13px; font-weight: 600; color: var(--accent); }
.dcp-pill .d-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); }

.dcp-grad { color: var(--accent); }

/* hero */
.dcp-hero { padding-top: calc(72px + 5vh); padding-bottom: clamp(36px,5vw,72px); }
.dcp-hero .dcp-split { grid-template-columns: minmax(0,0.94fr) minmax(0,1.06fr); align-items: stretch; }
.dcp-hero .dcp-split > div:first-child { display: flex; flex-direction: column; justify-content: center; }
.dcp-hero .dcp-split__media { display: flex; }
.dcp-hero__media { width: 100%; }
.dcp-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; aspect-ratio: 5/4; }
.dcp-hero__media { position: relative; border-radius: 14px; overflow: hidden; box-shadow: 0 30px 70px rgba(13,31,51,.16); }
.dcp-hero__media img { width: 100%; display: block; }
.dcp-signals { display: grid; grid-template-columns: repeat(4,1fr); gap: 0; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: var(--paper-card); margin-top: clamp(28px,4vw,48px); }
.dcp-signals > div { padding: 20px 22px; border-left: 1px solid var(--line); }
.dcp-signals > div:first-child { border-left: none; }

/* full-bleed image band */
.dcp-band-img { width: 100%; display: block; border-radius: 16px; box-shadow: 0 26px 60px rgba(13,31,51,.14); }

/* concept split */
.dcp-split { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,0.9fr); gap: clamp(28px,4vw,64px); align-items: center; }
.dcp-split.rev .dcp-split__media { order: 2; }
.dcp-points { display: grid; gap: 12px; margin-top: 24px; }
.dcp-point { display: flex; gap: 14px; align-items: flex-start; padding: 14px 0; border-top: 1px solid var(--line); }
.dcp-point__k { font-weight: 700; color: var(--accent); min-width: 96px; flex: 0 0 auto; }

/* problem */
.dcp-prob { display: grid; grid-template-columns: minmax(0,0.85fr) minmax(0,1.15fr); gap: clamp(28px,5vw,72px); align-items: start; }
.dcp-pain { display: flex; gap: 14px; align-items: flex-start; padding: 16px 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper-card); }

/* buoi (module) rows — alternating */
.dcp-mods { display: flex; flex-direction: column; gap: clamp(40px,6vw,80px); }
.dcp-mod { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,0.95fr); gap: clamp(28px,4vw,60px); align-items: center; }
.dcp-mod.rev .dcp-mod__media { order: 2; }
.dcp-mod__media { border-radius: 14px; overflow: hidden; box-shadow: 0 24px 54px rgba(13,31,51,.14); }
.dcp-mod__media img { width: 100%; display: block; transition: transform 1s cubic-bezier(.16,1,.3,1); }
.dcp-mod:hover .dcp-mod__media img { transform: scale(1.04); }
.dcp-mod__no { font-family: var(--serif); font-size: clamp(40px,5vw,68px); color: var(--accent); line-height: 1; }
.dcp-step { display: flex; gap: 11px; align-items: center; font-size: 15.5px; padding: 7px 0; }
.dcp-step svg { color: var(--accent); flex: 0 0 auto; }

/* outcomes */
.dcp-out { display: grid; grid-template-columns: repeat(4,1fr); gap: 0; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: var(--paper-card); }
.dcp-out > div { padding: 26px 24px; border-left: 1px solid var(--line); }
.dcp-out > div:first-child { border-left: none; }

/* offer / CTA */
.dcp-cta-box { border-radius: 20px; padding: clamp(36px,5vw,72px); text-align: center; background: var(--ink); color: var(--on-dark); }
.dcp-cta-box .lead { color: var(--on-dark-muted); }
.dcp-input { flex: 1 1 240px; padding: 14px 18px; border-radius: 12px; border: 1px solid var(--on-dark-line); background: rgba(243,238,228,0.06); color: var(--on-dark); font-family: var(--sans); font-size: 15px; outline: none; }
.dcp-input::placeholder { color: rgba(243,238,228,0.5); }

/* ---- Learn page ---- */
.dcp-learn-banner { position: relative; border-radius: 18px; overflow: hidden; box-shadow: 0 30px 70px rgba(13,31,51,.18); }
.dcp-learn-banner img { width: 100%; display: block; }
.dcp-learn-banner__overlay { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(24px,4vw,52px); background: linear-gradient(transparent 30%, rgba(13,31,51,.72)); color: var(--on-dark); }
.dcp-learn-grid { display: grid; grid-template-columns: minmax(0,1fr) 360px; gap: clamp(28px,4vw,52px); align-items: start; }
.dcp-resume { border-radius: 14px; overflow: hidden; background: var(--ink); color: var(--on-dark); }
.dcp-resume__bar { height: 7px; background: rgba(243,238,228,.16); border-radius: 100px; overflow: hidden; }
.dcp-resume__bar > div { height: 100%; background: var(--accent); border-radius: 100px; }
.dcp-mod-acc { border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: var(--paper-card); margin-bottom: 12px; }
.dcp-mod-acc__head { display: flex; align-items: center; gap: 14px; padding: 16px 20px; cursor: pointer; }
.dcp-lesson { display: flex; align-items: center; gap: 13px; padding: 12px 20px; border-top: 1px solid var(--line-soft); cursor: pointer; transition: background .25s; }
.dcp-lesson:hover { background: rgba(13,31,51,0.04); }
.dcp-lesson__ic { width: 30px; height: 30px; border-radius: 50%; flex: 0 0 auto; display: grid; place-items: center; border: 1px solid var(--line); color: var(--accent); }
.dcp-lesson.locked { opacity: .58; cursor: not-allowed; }

/* ---- AI assistant ---- */
.dcp-fab { position: fixed; right: 22px; bottom: 22px; z-index: 1200; display: flex; align-items: center; gap: 12px; padding: 8px 8px 8px 18px; border-radius: 100px; background: var(--ink); color: var(--on-dark); border: none; box-shadow: 0 16px 40px rgba(13,31,51,.32); cursor: pointer; transition: transform .3s; }
.dcp-fab:hover { transform: translateY(-2px); }
.dcp-fab img { width: 42px; height: 42px; border-radius: 50%; flex: 0 0 auto; }
.dcp-fab__txt { font-size: 14px; font-weight: 600; }
.dcp-chat { position: fixed; right: 22px; bottom: 22px; z-index: 1300; width: min(380px, calc(100vw - 32px)); height: min(560px, calc(100vh - 44px)); background: var(--paper-card); border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 30px 80px rgba(13,31,51,.3); display: flex; flex-direction: column; overflow: hidden; transform-origin: bottom right; animation: chatIn .4s cubic-bezier(.16,1,.3,1); }
@keyframes chatIn { from { opacity: 0; transform: scale(.9) translateY(10px); } to { opacity: 1; transform: none; } }
.dcp-chat__head { display: flex; align-items: center; gap: 12px; padding: 16px 18px; background: var(--ink); color: var(--on-dark); }
.dcp-chat__head img { width: 40px; height: 40px; border-radius: 50%; }
.dcp-chat__body { flex: 1; overflow-y: auto; padding: 18px; display: flex; flex-direction: column; gap: 12px; }
.dcp-msg { max-width: 82%; padding: 11px 15px; border-radius: 14px; font-size: 14.5px; line-height: 1.5; }
.dcp-msg.bot { align-self: flex-start; background: var(--paper-2); color: var(--ink); border-bottom-left-radius: 4px; }
.dcp-msg.user { align-self: flex-end; background: var(--accent); color: #fff; border-bottom-right-radius: 4px; }
.dcp-sugg { display: flex; flex-direction: column; gap: 8px; padding: 0 18px 14px; }
.dcp-sugg button { text-align: left; padding: 10px 14px; border-radius: 10px; border: 1px solid var(--line); background: var(--paper-card); font-family: var(--sans); font-size: 13.5px; color: var(--ink); cursor: pointer; transition: border-color .25s, color .25s; }
.dcp-sugg button:hover { border-color: var(--accent); color: var(--accent); }
.dcp-chat__foot { padding: 12px 14px; border-top: 1px solid var(--line); }
.dcp-chat__cta { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; padding: 12px; border-radius: 10px; background: var(--accent); color: #fff; border: none; font-family: var(--sans); font-weight: 600; font-size: 14px; cursor: pointer; }

/* video intro slot */
.dcp-video { max-width: 920px; margin: 0 auto; }
/* login gate */
.dcp-login { min-height: 78vh; display: grid; place-items: center; padding: calc(72px + 6vh) 20px 60px; }
.dcp-login__card { width: 100%; max-width: 440px; background: var(--paper-card); border: 1px solid var(--line); border-radius: 18px; padding: clamp(28px,4vw,44px); box-shadow: 0 24px 60px rgba(13,31,51,.1); }
/* sticky mobile CTA bar */
.dcp-mobile-bar { display: none; }
@media (max-width: 820px) {
  .dcp-mobile-bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; position: fixed; left: 14px; right: 14px; bottom: 12px; z-index: 900; padding: 7px 8px 7px 16px; border-radius: 100px; background: var(--accent); color: #fff; box-shadow: 0 10px 28px rgba(13,31,51,.35); animation: dcpBarUp .5s cubic-bezier(.16,1,.3,1); font-size: 13.5px; line-height: 1.25; }
  .dcp-mobile-bar b { font-size: 14px; }
  .dcp-mobile-bar .tiny { font-size: 11px; }
  .dcp-mobile-bar__btn { width: 32px; height: 32px; border-radius: 50%; background: rgba(255,255,255,.2); display: grid; place-items: center; flex: 0 0 auto; }
}
/* header gọn trên phone: ẩn nút 'Nhận tư vấn' (đã có thanh CTA dưới), để nút 'Đăng nhập học' luôn hiện rõ */
@media (max-width: 600px) { .dcp-hdr-cta { display: none !important; } }
@keyframes dcpBarUp { from { transform: translateY(140%); } to { transform: none; } }
/* exit-intent popup */
.dcp-exit-scrim { position: fixed; inset: 0; z-index: 1400; background: rgba(13,31,51,.55); display: grid; place-items: center; padding: 20px; animation: dcpFade .25s ease; }
@keyframes dcpFade { from { opacity: 0; } to { opacity: 1; } }
.dcp-exit { position: relative; width: 100%; max-width: 420px; background: var(--paper-card); border-radius: 18px; padding: clamp(26px,4vw,38px); box-shadow: 0 40px 100px rgba(13,31,51,.4); animation: dcpPop .4s cubic-bezier(.16,1,.3,1); }
@keyframes dcpPop { from { opacity: 0; transform: scale(.92) translateY(10px); } to { opacity: 1; transform: none; } }
.dcp-exit__x { position: absolute; top: 14px; right: 14px; width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--line); background: var(--paper); color: var(--ink-soft); display: grid; place-items: center; cursor: pointer; }
.dcp-video__frame { width: 100%; aspect-ratio: 16/9; border-radius: 16px; display: block; box-shadow: 0 26px 60px rgba(13,31,51,.18); }
.dcp-video__poster { position: relative; display: block; width: 100%; aspect-ratio: 16/9; border: none; padding: 0; border-radius: 16px; overflow: hidden; cursor: pointer; box-shadow: 0 26px 60px rgba(13,31,51,.18); }
.dcp-video__poster img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1s cubic-bezier(.16,1,.3,1); }
.dcp-video__poster::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 40%, rgba(13,31,51,.42)); }
.dcp-video__poster:hover img { transform: scale(1.04); }
.dcp-video__play { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); z-index: 2; width: 84px; height: 84px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,0.92); color: var(--accent); box-shadow: 0 12px 34px rgba(13,31,51,.3); transition: transform .3s; }
.dcp-video__poster:hover .dcp-video__play { transform: translate(-50%,-50%) scale(1.08); }
.dcp-video__badge { position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%); z-index: 2; font-size: 12.5px; font-weight: 600; color: #fff; background: rgba(13,31,51,.6); padding: 6px 14px; border-radius: 100px; white-space: nowrap; }

/* QR payment layout */
.dcp-pay { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: clamp(24px,4vw,48px); align-items: center; text-align: left; }
.dcp-pay__info { display: grid; gap: 6px; font-size: 14.5px; color: var(--on-dark-muted); border-top: 1px solid var(--on-dark-line); padding-top: 16px; }
.dcp-pay__qr { flex: 0 0 auto; text-align: center; background: var(--paper-card); padding: 16px; border-radius: 16px; }
.dcp-pay__qr img { display: block; width: 240px; height: 240px; border-radius: 8px; }
@media (max-width: 700px) { .dcp-pay { grid-template-columns: 1fr; text-align: center; justify-items: center; } .dcp-pay__info { justify-items: center; } }

/* responsive */
@media (max-width: 980px) { .dcp-learn-grid { grid-template-columns: 1fr; } }
@media (max-width: 900px) {
  .dcp-nav { display: none; }
  .dcp-hdr .dcp-brand .tag { display: none; }
  .dcp-split, .dcp-split.rev, .dcp-mod, .dcp-mod.rev, .dcp-prob { grid-template-columns: 1fr; }
  .dcp-split.rev .dcp-split__media, .dcp-mod.rev .dcp-mod__media { order: 0; }
  .dcp-signals { grid-template-columns: 1fr 1fr; }
  .dcp-out { grid-template-columns: 1fr 1fr; }
  .dcp-fab__txt { display: none; }
  .dcp-fab { padding: 8px; }
  /* lift the dark-link "Về Sam" off the header on small screens to avoid crowding */
  .dcp-hdr a[href="index.html"].dcp-nav { display: none !important; }
}
@media (max-width: 760px) {
  .dcp-hero { padding-top: calc(72px + 3vh); }
  .dcp-hero .display { font-size: clamp(34px, 11vw, 52px); }
  .dcp-hero__media img { aspect-ratio: 16/10; object-position: 50% 28%; }
  .h1 { font-size: clamp(32px, 9vw, 52px); }
  .h2 { font-size: clamp(26px, 7vw, 40px); }
  .section { padding: clamp(48px, 11vw, 96px) 0; }
  .dcp-mod__no { font-size: clamp(34px, 10vw, 52px); }
  .dcp-video__play { width: 64px; height: 64px; }
  .dcp-cta-box { padding: 28px 20px; border-radius: 16px; }
  .dcp-learn-banner__overlay { padding: 20px; }
  .dcp-learn-banner__overlay .h1 { font-size: clamp(26px, 8vw, 40px); }
  .dcp-resume { position: static !important; }
  /* keep the floating assistant clear of the bottom CTA on phones */
  .dcp-fab { right: 14px; bottom: 14px; }
  .dcp-chat { right: 10px; bottom: 10px; }
}
@media (max-width: 520px) {
  .dcp-signals, .dcp-out { grid-template-columns: 1fr; }
  .dcp-signals > div, .dcp-out > div { border-left: none; border-top: 1px solid var(--line); }
  .dcp-signals > div:first-child, .dcp-out > div:first-child { border-top: none; }
  .dcp-pay__qr img { width: 200px; height: 200px; }
  .dcp-hero .btn, .dcp-cta-box .btn { width: 100%; justify-content: center; }
  .dcp-hero__media, .dcp-band-img, .dcp-mod__media { border-radius: 12px; }
}


/* ===== PORT từ web/styles.css: Flash giảng bài + Giải thích + Leaderboard ===== */
/* Thẻ Flash giảng bài (nhúng engine qua iframe 16:9) */
.flash-wrap{display:grid;gap:16px;margin:0 0 22px}
.flash-card{position:relative;width:100%;padding-top:56.25%;border-radius:14px;overflow:hidden;
  box-shadow:0 10px 30px rgba(13,31,51,.18);background:#0d1f33}
.flash-frame{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
/* Giải thích Học·Hiểu·Hành (WHY/HOW/WHAT) sau khi đạt */
.explain{margin:18px 0 6px;padding:18px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,#fbfdff,#fff)}
.explain__head{font-weight:800;color:#0d1f33;margin-bottom:12px;font-size:15px}
.explain__grid{display:grid;gap:12px;grid-template-columns:1fr}
.explain__grid{grid-template-columns:repeat(3,1fr)}
.explain__card{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--card)}
.explain__card.x-why{border-top:3px solid #d9822b}
.explain__card.x-how{border-top:3px solid #1c6fb8}
.explain__card.x-what{border-top:3px solid #1f9d63}
.explain__t{font-weight:700;font-size:13.5px;margin-bottom:7px;color:#0d1f33}
.explain__b{font-size:14px;line-height:1.62;color:var(--ink-soft)}
.explain__b p{margin:0 0 7px}
.explain__b ul{margin:6px 0;padding-left:18px}
.explain__b b{color:var(--ink)}
/* Bảng vinh danh (leaderboard) */
.lb-you{margin:14px 0;padding:14px 18px;border-radius:12px;background:linear-gradient(135deg,#0d1f33,#15375a);color:#fff;font-size:15px}
.lb-you b{color:#f0cd83}
.lb-grid{display:grid;gap:18px;grid-template-columns:1fr;margin-top:16px}
.lb-grid{grid-template-columns:1.1fr .9fr}
.lb-table{width:100%;border-collapse:collapse}
.lb-table td{padding:10px 8px;border-bottom:1px solid var(--line)}
.lb-table tr.me{background:#fff8e6}
.lb-rank{width:48px;font-weight:800;font-size:16px;color:var(--accent)}
.lb-name{font-weight:600}
.lb-done{text-align:right;color:var(--muted);white-space:nowrap}
.lb-bar-row{display:flex;align-items:center;gap:10px;margin:9px 0}
.lb-bar-no{width:64px;font-size:13px;color:var(--ink-soft)}
.lb-bar{flex:1;height:14px;background:var(--paper);border-radius:8px;overflow:hidden}
.lb-bar-fill{display:block;height:100%;background:linear-gradient(90deg,#1c6fb8,#c8912f)}
.lb-bar-c{width:30px;text-align:right;font-weight:700;font-size:13px}

/* ===== Video DỌC (9:16) — frame dọc hiển thị full, không viền đen 2 bên ===== */
.dcp-video.is-portrait{aspect-ratio:9/16; max-width:min(420px,calc(78vh*9/16)); width:100%; margin-left:auto; margin-right:auto;}
.dcp-video.is-portrait .dcp-video__frame{width:100%; height:100%;}

/* ===== MỤC CON kiểu Trăng Đen — accordion bung tại chỗ ===== */
.muc-card{background:var(--paper-card,#fff); border:1px solid var(--line,#e6e1d6); border-left:4px solid var(--line,#d8d2c4);
  border-radius:14px; overflow:hidden; transition:.18s; box-shadow:0 2px 10px rgba(13,31,51,.03);}
.muc-card.done{border-left-color:#16a34a;}
.muc-card.open{border-left-color:var(--gold,#C99A4E); box-shadow:0 10px 26px rgba(13,31,51,.09);}
.muc-head{display:flex; align-items:center; gap:14px; padding:15px 17px; cursor:pointer;}
.muc-head:hover{background:rgba(28,111,184,.03);}
.muc-ico{flex-shrink:0; width:40px; height:40px; border-radius:11px; display:flex; align-items:center;
  justify-content:center; font-size:19px; background:rgba(28,111,184,.08); color:var(--accent,#1C6FB8);}
.muc-ico.done{background:#dcfce7; color:#16a34a; font-weight:800;}
.muc-title{font-weight:600; font-size:15.5px; color:var(--ink,#0d1f33); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.muc-sub{font-size:13px; color:var(--muted,#6b7280); margin-top:2px;}
.muc-sub.done{color:#16a34a; font-weight:600;}
.muc-link{flex-shrink:0; background:transparent; border:none; cursor:pointer; font-size:15px; opacity:.5; padding:4px;}
.muc-link:hover{opacity:1;}
.muc-chev{flex-shrink:0; color:var(--muted,#9aa3af); font-size:22px; font-weight:300; transition:transform .2s;}
.muc-body{padding:6px 18px 20px; border-top:1px solid var(--line,#eee); animation:mucfade .22s ease;}
@keyframes mucfade{from{opacity:0; transform:translateY(-4px);} to{opacity:1; transform:none;}}
.btn-sm{padding:7px 13px !important; font-size:13px !important;}

/* ===== Module tabs ngang (Trăng Đen) ===== */
.mod-tabs{display:flex; gap:8px; overflow-x:auto; padding:4px 0 10px; -webkit-overflow-scrolling:touch; scrollbar-width:thin;}
.mod-tab{display:flex; align-items:center; gap:8px; flex:0 0 auto; padding:10px 16px; border-radius:12px;
  border:1px solid var(--line,#e6e1d6); background:var(--paper-card,#fff); cursor:pointer; transition:.16s;
  font-family:var(--sans); font-size:13.5px; font-weight:600; color:var(--ink-soft,#475569); white-space:nowrap;}
.mod-tab:hover{border-color:var(--gold,#C99A4E);}
.mod-tab.on{background:var(--ink,#0d1f33); color:#fff; border-color:var(--ink,#0d1f33);}
.mod-tab.locked{opacity:.5; cursor:not-allowed;}
.mod-ico{font-size:15px;}

/* ===== 1 CỘT: thẻ BÀI (đơn giản, bung tại chỗ) ===== */
.bai-card{background:var(--paper-card,#fff); border:1px solid var(--line,#e6e1d6); border-radius:16px;
  overflow:hidden; transition:.18s; box-shadow:0 2px 12px rgba(13,31,51,.04);}
.bai-card.done{border-left:4px solid #16a34a;}
.bai-card.open{box-shadow:0 14px 36px rgba(13,31,51,.1); border-color:var(--gold,#C99A4E);}
.bai-card.locked{opacity:.6;}
.bai-head{display:flex; align-items:center; gap:14px; padding:18px 20px; cursor:pointer;}
.bai-card.locked .bai-head{cursor:not-allowed;}
.bai-head:hover{background:rgba(28,111,184,.025);}
.bai-no{flex-shrink:0; width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:15px; background:var(--ink,#0d1f33); color:#fff;}
.bai-card.done .bai-no{background:#dcfce7; color:#16a34a;}
.bai-card.locked .bai-no{background:rgba(0,0,0,.06); color:var(--muted,#9aa3af);}
.bai-title{font-family:var(--serif,Georgia); font-weight:600; font-size:17px; color:var(--ink,#0d1f33); line-height:1.3;}
.bai-meta{font-size:13px; color:var(--muted,#6b7280); margin-top:3px;}
.bai-chev{flex-shrink:0; color:var(--muted,#9aa3af); font-size:24px; font-weight:300; transition:transform .2s;}
.bai-body{padding:4px 20px 22px; animation:mucfade .22s ease;}
.bai-prev{padding:13px 18px; border:1px dashed var(--line,#d8d2c4); border-radius:12px; cursor:pointer;
  color:var(--muted,#6b7280); font-size:14px; font-weight:600; text-align:center; background:rgba(0,0,0,.015);}
.bai-prev:hover{border-color:var(--gold,#C99A4E); color:var(--ink,#0d1f33);}
.mod-dot{width:8px; height:8px; border-radius:50%; background:var(--gold,#C99A4E); display:inline-block;}

/* ===== Video trong mục con: NHỎ, không tràn ===== */
.dcp-video-muc{max-width:440px; margin:6px auto 4px;}
.dcp-video-muc.is-portrait{max-width:230px;}
/* tabs: KHÔNG cuộn ngang trên header -> xuống dòng */
.mod-tabs{flex-wrap:wrap; overflow:visible;}
/* thẻ ghi nhớ: gọn lại, không tràn */
.flash-wrap{grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:12px;}
.flash-card{max-width:340px; padding-top:60%;}

/* ===== Nội dung đọc canh giữa + bài khoá gọn ===== */
.bai-body .measure{margin-left:auto; margin-right:auto;}
.muc-body{max-width:1120px; margin-left:auto; margin-right:auto;}
.bai-card.locked .bai-title{font-size:15.5px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.bai-card.locked .bai-head{padding:13px 18px;}

/* full trang: card rộng, nội dung đọc canh giữa thoải mái */
.bai-body{max-width:1320px; margin-left:auto; margin-right:auto;}
.bai-body .measure{max-width:880px;}

/* Trắc nghiệm: mỗi câu 1 thẻ rõ ràng */
.qz-q{background:#fff; border:1px solid var(--line,#e6e1d6); border-radius:12px; padding:16px 18px; margin-bottom:12px; box-shadow:0 1px 6px rgba(13,31,51,.03);}
.qz-explain.ok{color:#16a34a;} .qz-explain.no{color:#b4471f;}

/* HTML bài giảng full trang trong mục con (ghi đè max-width inline của agy) */
.muc-body .lesson{max-width:100% !important; padding:0 !important; box-shadow:none !important; border:none !important; background:transparent !important;}

/* HTML bài giảng: chữ kế thừa màu khối cha (hết lỗi chữ tối trên nền màu) */
.muc-body .lesson h1, .muc-body .lesson h2, .muc-body .lesson h3, .muc-body .lesson h4,
.muc-body .lesson p, .muc-body .lesson li, .muc-body .lesson ol, .muc-body .lesson ul { color: inherit; }
.muc-body .lesson { color: #334155; }

/* Nút phóng to video toàn màn hình (chạy cho cả iframe Drive + <video>) */
.dcp-video__fs{position:absolute; left:8px; bottom:8px; z-index:8; background:rgba(13,31,51,.82); color:#fff;
  border:none; border-radius:8px; padding:7px 12px; font-size:13px; font-weight:600; cursor:pointer;}
.dcp-video__fs:hover{background:rgba(13,31,51,.96);}
.dcp-video:fullscreen{max-width:none !important; width:100vw; height:100vh; background:#000; display:flex; align-items:center; justify-content:center; border-radius:0;}
.dcp-video:fullscreen .dcp-video__frame{width:auto; height:100%; max-width:100vw; aspect-ratio:auto;}
.dcp-video:-webkit-full-screen{max-width:none !important; width:100vw; height:100vh; background:#000;}
.dcp-video:fullscreen .dcp-video__fs{bottom:20px; left:20px;}
.dcp-video__frame:fullscreen{width:100vw !important; height:100vh !important; max-width:none !important; border-radius:0; background:#000; object-fit:contain; aspect-ratio:auto;}
.dcp-video__frame:-webkit-full-screen{width:100vw !important; height:100vh !important; max-width:none !important; border-radius:0; background:#000;}
.dcp-video-modal{position:fixed; inset:0; z-index:10020; background:#000; display:flex; align-items:center; justify-content:center;}
.dcp-video-modal__frame{width:100vw; height:100vh; border:0; display:block; background:#000;}
.dcp-video-modal__close{position:fixed; top:14px; right:14px; z-index:10021; width:42px; height:42px; border:0; border-radius:50%; background:rgba(255,255,255,.92); color:#0d1f33; font-size:28px; line-height:1; cursor:pointer; box-shadow:0 8px 24px rgba(0,0,0,.28);}
.dcp-video-modal__close:hover{background:#fff;}

/* Tài Liệu */
.tl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;}
.tl-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;text-align:left;background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:18px;cursor:pointer;transition:.16s;box-shadow:0 2px 8px rgba(13,31,51,.04);}
.tl-card:hover{border-color:#C99A4E;transform:translateY(-2px);box-shadow:0 8px 22px rgba(13,31,51,.1);}
.tl-ic{font-size:30px;line-height:1;}
.tl-tt{font-weight:700;color:#0d1f33;font-size:15px;line-height:1.4;}
.tl-kind{font-size:12.5px;color:#C99A4E;font-weight:600;margin-top:auto;}
.tl-modal{position:fixed;inset:0;z-index:9998;background:rgba(13,31,51,.78);display:flex;align-items:center;justify-content:center;padding:20px;}
.tl-modal__box{background:#fff;border-radius:14px;width:min(1000px,96vw);height:92vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.4);}
.tl-modal__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 18px;border-bottom:1px solid #e2e8f0;color:#0d1f33;}
.tl-frame{flex:1;width:100%;border:0;}

/* Hall of Fame */
.hall-empty{margin-top:22px;background:linear-gradient(135deg,#fffbeb,#fef3c7);border:1px solid #fde68a;border-radius:14px;padding:24px;color:#92400e;line-height:1.6;font-size:15px;}
.hall-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-top:22px;}
.hall-card{display:flex;flex-direction:column;background:#fff;border:1px solid #e2e8f0;border-radius:14px;overflow:hidden;text-decoration:none;transition:.16s;box-shadow:0 2px 8px rgba(13,31,51,.05);}
.hall-card:hover{border-color:#C99A4E;transform:translateY(-3px);box-shadow:0 10px 26px rgba(13,31,51,.12);}
.hall-thumb{aspect-ratio:1/1;background:#0d1f33;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.hall-thumb img{width:100%;height:100%;object-fit:cover;}
.hall-doc{font-size:46px;}
.hall-meta{padding:12px 14px;}
.hall-name{font-weight:700;color:#0d1f33;font-size:14.5px;}
.hall-cap{color:#64748b;font-size:13px;margin-top:3px;}

/* Trắc nghiệm: câu cần chọn lại (sai) */
.qz-q.qz-redo{background:#fef2f2;border:1px solid #fecaca;border-radius:10px;padding:10px 12px;}

/* Nút check "đã học" + trạng thái khoá (video chưa xem 100% -> nội dung xám) */
.muc-check-row{margin-top:12px; padding-top:12px; border-top:1px dashed var(--line,#e6e1d6); display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
.muc-check-ok{color:#16a34a; font-weight:700; font-size:14px;}
.muc-check-prog{color:#9a6a1e; font-weight:600; font-size:13.5px; background:#fffbeb; border:1px solid #fcd34d; padding:6px 12px; border-radius:8px;}
.muc-card.locked{opacity:.62; background:#f6f5f2;}
.muc-card.locked .muc-ico{background:rgba(0,0,0,.05); color:var(--muted,#9aa3af);}
.muc-card.locked .muc-head{cursor:not-allowed;}
.muc-card.locked .muc-sub{color:var(--muted,#9aa3af);}

/* ===== TỐI ƯU MOBILE (chỉ THÊM, giữ desktop) ===== */
@media (max-width: 640px) {
  html, body { max-width: 100%; overflow-x: hidden; }
  * { overflow-wrap: break-word; }
  .wrap, .wrap-wide, .page, section > div { max-width: 100% !important; padding-left: 14px !important; padding-right: 14px !important; box-sizing: border-box; }
  /* marquee / hàng ngang không kéo tràn */
  .marquee, .dcp-marquee, [class*="marquee"] { max-width: 100vw; overflow: hidden; }
  /* hero + grid về 1 cột */
  .dcp-hero, .dcp-hero__inner, .dcp-learn-grid, .dcp-pay, [class*="grid"][style*="grid-template-columns"] { grid-template-columns: 1fr !important; display: block; }
  .dcp-hero__media img { width: 100%; height: auto; }
  /* chữ + nút dễ chạm */
  h1, .h1 { font-size: 26px !important; line-height: 1.25; }
  h2, .h2 { font-size: 21px !important; }
  .btn, button.btn, .muc-head, .bai-head { min-height: 46px; }
  .btn { width: 100%; justify-content: center; font-size: 15.5px; }
  .row .btn, .muc-check-row .btn { width: auto; }
  /* video full-width + cao hợp lý */
  .dcp-video__frame, .dcp-video, video.dcp-video__frame, iframe.dcp-video__frame { width: 100% !important; max-width: 100%; }
  .dcp-video-muc { aspect-ratio: 16/9; }
  /* textarea nộp bài to hơn, không bị che */
  .ex-work, textarea { width: 100%; min-height: 90px; font-size: 16px; }
  /* card padding gọn */
  .muc-card, .bai-card, .card { padding: 12px 14px; }
  /* bảng cuộn ngang trong khung (không vỡ trang) */
  table { display: block; overflow-x: auto; max-width: 100%; }
}
