/* =========================================================================
   JK UI — Page-level layouts (Dashboard, Live, EPG, VOD, Auth, Billing…)
   ========================================================================= */

/* ============================ DASHBOARD ================================= */
.jk-hero {
  position: relative;
  border-radius: var(--r-xl);
  overflow: hidden;
  background: var(--bg-card-2);
  border: 1px solid var(--line-soft);
  box-shadow: var(--shadow-2);
  width: 100%;
  aspect-ratio: 16 / 8;
  min-height: 260px;
  max-height: 540px;
}
.jk-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* [FIX 2026-08-25] Do tuong phan bang PIXEL THAT (tach nen/chu bang nguong Otsu):
   trung vi 8.5:1 nhung cho anh SANG NHAT chi con 2.79:1 (tieu de) va 2.83:1 (mo ta)
   — chu chim khi anh nen sang. Lam dam lop phu o vung co chu, van de lo anh ben phai. */
.jk-hero__veil { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(9,20,21,.97) 0%, rgba(9,20,21,.93) 44%, rgba(9,20,21,.76) 66%, rgba(9,20,21,.26) 87%, rgba(9,20,21,.06) 100%); }
.jk-hero__body {
  position: absolute; inset: auto 0 0 0;
  padding: var(--sp-6);
  display: flex; flex-direction: column; gap: var(--sp-3);
  max-width: 620px; color: #F5F0E6;
}
.jk-hero__title { font-family: var(--font-display); font-size: var(--fs-34); line-height: 1.15;
  text-shadow: 0 1px 3px rgba(12,26,27,.55); }
@media (max-width: 767px) {
  .jk-hero { aspect-ratio: 4 / 3; min-height: 0; }
  .jk-hero__title { font-size: var(--fs-20); }
  .jk-hero__body { padding: var(--sp-4); max-width: 100%; }
  .jk-hero__veil { background: linear-gradient(0deg, rgba(12,26,27,.96) 12%, rgba(12,26,27,.82) 42%, rgba(12,26,27,.45) 70%, rgba(12,26,27,.10) 100%); }
}
.jk-hero__desc { color: #F3F8F1; font-size: var(--fs-13); text-shadow: 0 1px 3px rgba(9,20,21,.6); }
.jk-hero__meta { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.jk-hero__nav { position: absolute; right: var(--sp-4); bottom: var(--sp-4); display: flex; gap: var(--sp-2); z-index: 3; }
/* [FIX 2026-08-25] Tren mobile lop phu chuyen sang doc, noi dung hero dan xuong
   day nen cac cham dieu huong DE LEN nut "ライブ". Goc tren phai dang trong (huy
   hieu nam goc tren trai) nen dua cham len do. */
@media (max-width: 767px) {
  .jk-hero__nav { top: var(--sp-4); bottom: auto; }
}
/* [FIX 2026-08-25] Truoc la 8x8 (hoat dong 22x8) — duoi nguong vung bam 24px cua
   WCAG 2.2. Dung padding + background-clip:content-box: vung BAM cao 24px va rong
   16px, con phan VE ra van dung 8px nhu cu. Khoang cach 8px giua cac cham cho buoc
   16+8=24px, dat ngoai le "khoang cach muc tieu". */
.jk-hero__dot {
  box-sizing: border-box;
  width: 24px; height: 24px; padding: 8px;
  border-radius: var(--r-pill);
  background: rgba(245,240,230,.4); background-clip: content-box;
  transition: width var(--t-base) var(--ease), background var(--t-base);
}
.jk-hero__dot.is-active { width: 38px; background: var(--brand-100); background-clip: content-box; }

.jk-continue { display: flex; flex-direction: column; gap: var(--sp-3); }
.jk-continue__item { display: flex; gap: var(--sp-3); align-items: center; padding: 6px; border-radius: var(--r-sm); transition: background var(--t-fast); }
.jk-continue__item:hover { background: var(--bg-hover); }
.jk-continue__thumb { width: 72px; height: 48px; flex: none; border-radius: var(--r-xs); overflow: hidden; background: var(--bg-inset); }
.jk-continue__thumb img { width: 100%; height: 100%; object-fit: cover; }
.jk-continue__meta { min-width: 0; }
.jk-continue__title { font-size: var(--fs-13); font-weight: 600; }
.jk-continue__sub { font-size: var(--fs-11); color: var(--tx-3); }
.jk-progress { height: 3px; border-radius: var(--r-pill); background: var(--bg-inset); overflow: hidden; margin-top: 5px; }
.jk-progress > i { display: block; height: 100%; background: var(--accent-orange); }

.jk-appcta {
  display: grid; grid-template-columns: 1.1fr .9fr; gap: var(--sp-6);
  align-items: center;
  border-radius: var(--r-xl);
  /* [FIX 2026-08-25] Dau gradient cu (--brand-600 #688F71) qua sang: chu phu chi
     dat 4.22:1, can 4.5. Dung mau dam hon. */
  background: linear-gradient(120deg, var(--brand-900) 0%, #4F7357 100%);
  color: #F1F7EC;
  padding: var(--sp-8);
  overflow: hidden; position: relative;
}
.jk-appcta h3 { font-family: var(--font-display); font-size: var(--fs-28); margin-bottom: var(--sp-2); }
/* [FIX 2026-08-25] #D8E7D3 tren nen gradient chi dat 3.92:1 (can 4.5). */
.jk-appcta p { color: #F1F7EC; }
.jk-appcta__actions { display: flex; flex-wrap: wrap; gap: var(--sp-3); margin-top: var(--sp-4); }
.jk-appcta__store { display: inline-flex; align-items: center; gap: var(--sp-2); padding: 8px var(--sp-4); border-radius: var(--r-pill); background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.22); font-size: var(--fs-12); }
.jk-appcta picture { justify-self: end; display: block; line-height: 0; }
.jk-appcta__art { display: block; width: 280px; max-width: 100%; height: auto; }
@media (max-width: 900px) { .jk-appcta { grid-template-columns: 1fr; padding: var(--sp-6); } .jk-appcta__art, .jk-appcta picture { display: none; } }

/* ============================== LIVE TV ================================= */
.jk-live { display: grid; grid-template-columns: minmax(0,1fr) 340px; gap: var(--sp-5); align-items: start; }
@media (max-width: 1279px) { .jk-live { grid-template-columns: minmax(0,1fr); } }
.jk-live__aside { position: sticky; top: calc(var(--topbar-h) + var(--sp-5)); }
@media (max-width: 1279px) { .jk-live__aside { position: static; } }
.jk-live__list { max-height: 520px; overflow-y: auto; display: flex; flex-direction: column; gap: 2px; margin: 0 calc(var(--sp-2) * -1); padding: 0 var(--sp-2); }
.jk-nowplaying { display: flex; gap: var(--sp-3); align-items: flex-start; margin-top: var(--sp-4); }
/* Logo kenh dang phat: khung cu 64x44 (~1.45:1) khong khop anh 2:1 nen anh
   thap hon khung => lo ra dai nen toi tren/duoi khi chuyen kenh. */
.jk-nowplaying__logo {
  width: 72px; aspect-ratio: 2 / 1; flex: none;
  border-radius: var(--r-xs); background: var(--bg-card-2);
  overflow: hidden; padding: 0; display: block;
}
.jk-nowplaying__logo img {
  display: block; width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  border-radius: inherit;
}
.jk-nowplaying h1 { font-family: var(--font-display); font-size: var(--fs-24); }
.jk-nowplaying p { margin: 0; font-size: var(--fs-13); color: var(--tx-2); }

/* Timeshift / catch-up drawer trong player */
#broadcast-schedule {
  position: absolute; top: 0; right: 0; bottom: 0; z-index: 8;
  width: min(380px, 92%);
  display: none; flex-direction: column;
  background: color-mix(in srgb, var(--bg-card) 96%, transparent);
  backdrop-filter: blur(14px);
  border-left: 1px solid var(--line);
  box-shadow: var(--shadow-3);
  color: var(--tx);
}
#broadcast-schedule.is-open { display: flex; }
.jk-ts__head { padding: var(--sp-4); border-bottom: 1px solid var(--line-soft); }
.jk-ts__head h4 { font-family: var(--font-display); font-size: var(--fs-16); margin-bottom: var(--sp-3); }
.jk-ts__close { position: absolute; top: var(--sp-3); right: var(--sp-3); width: 30px; height: 30px; border-radius: var(--r-pill); display: grid; place-items: center; background: var(--bg-hover); }
.jk-ts__dates { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; }
.jk-ts__dates::-webkit-scrollbar { display: none; }
.jk-ts__date {
  flex: 0 0 auto; min-width: 46px; padding: 6px 8px; text-align: center;
  border-radius: var(--r-sm); background: var(--bg-card-2); border: 1px solid var(--line-soft);
  font-size: var(--fs-11); line-height: 1.25; cursor: pointer;
}
.jk-ts__date.is-active { background: var(--accent); color: var(--accent-tx); border-color: var(--accent); font-weight: 700; }
.jk-ts__list { flex: 1; overflow-y: auto; padding: var(--sp-2); display: flex; flex-direction: column; gap: 2px; }
.jk-ts__item {
  display: flex; gap: var(--sp-3); align-items: center;
  padding: 9px var(--sp-3); border-radius: var(--r-sm);
  font-size: var(--fs-12); color: var(--tx-2);
  transition: background var(--t-fast);
}
.jk-ts__item:hover { background: var(--bg-hover); color: var(--tx); }
.jk-ts__item.is-active { background: var(--accent-soft); color: var(--accent-soft-tx); font-weight: 700; }
.jk-ts__item.is-disabled { opacity: .42; pointer-events: none; }
.jk-ts__time { flex: none; width: 40px; font-variant-numeric: tabular-nums; font-weight: 700; }
.jk-ts__prog { flex: 1; min-width: 0; }

/* ============================ EPG / SCHEDULE ============================ */
.jk-epg__bar {
  display: flex; align-items: center; gap: var(--sp-3);
  flex-wrap: wrap; margin-bottom: var(--sp-4);
}
.jk-datestrip { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
.jk-datestrip::-webkit-scrollbar { display: none; }
.jk-date {
  flex: 0 0 auto; min-width: 52px; padding: 7px 10px; text-align: center;
  border-radius: var(--r-sm); border: 1px solid var(--line-soft); background: var(--bg-card);
  line-height: 1.2;
}
.jk-date b { display: block; font-size: var(--fs-15); font-variant-numeric: tabular-nums; }
.jk-date span { font-size: 10px; color: var(--tx-3); }
.jk-date:hover { background: var(--bg-hover); }
.jk-date.is-active { background: var(--accent-orange); border-color: var(--accent-orange); color: #4A2E10; }
.jk-date.is-active span { color: inherit; opacity: .8; }

/* Timetable dọc theo giờ (trang schedule.view) */
.jk-timetable {
  --row-h: 3px;                /* 1 phút = 3px */
  position: relative;
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  border-radius: var(--r-lg);
  border: 1px solid var(--line-soft);
  background: var(--bg-card);
  overflow: hidden;
}
.jk-timetable__hours { border-right: 1px solid var(--line-soft); background: var(--bg-inset); }
.jk-timetable__hour {
  height: calc(60 * var(--row-h));
  padding: 6px 0 0;
  text-align: center;
  font-size: var(--fs-12); font-weight: 700; color: var(--tx-3);
  border-bottom: 1px solid var(--line-soft);
  font-variant-numeric: tabular-nums;
}
.jk-timetable__hour.is-noon { color: var(--warn); }
.jk-timetable__hour.is-night { color: var(--info); }
.jk-timetable__hour.is-late { color: var(--tx-3); }
.jk-timetable__body { position: relative; }
.jk-prog {
  position: absolute; left: 0; right: 0;
  padding: 7px var(--sp-3);
  border-bottom: 1px solid var(--line-soft);
  overflow: hidden;
  display: flex; gap: var(--sp-3);
  transition: background var(--t-fast);
}
.jk-prog:hover { background: var(--bg-hover); }
.jk-prog.is-past { background: color-mix(in srgb, var(--brand-50) 42%, var(--bg-card)); }
.jk-prog.is-now { background: var(--accent-soft); box-shadow: inset 3px 0 0 var(--accent-coral); }
.jk-prog__time { flex: none; font-size: var(--fs-11); font-weight: 800; color: var(--tx-3); font-variant-numeric: tabular-nums; width: 38px; }
.jk-prog__title { font-size: var(--fs-13); line-height: 1.35; }
.jk-prog--short { padding: 3px var(--sp-3); align-items: center; }
.jk-prog--short .jk-prog__time { font-size: 10px; }
.jk-prog--short .jk-prog__title { font-size: var(--fs-11); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.jk-timetable__hour[id] { scroll-margin-top: calc(var(--topbar-h) + 12px); }
.jk-prog__thumb { margin-left: auto; width: 74px; flex: none; border-radius: var(--r-xs); overflow: hidden; align-self: flex-start; }
@media (max-width: 767px) {
  .jk-timetable { --row-h: 2.6px; grid-template-columns: 42px minmax(0,1fr); }
  .jk-prog__thumb { display: none; }
}

/* Lưới EPG ngang nhiều kênh (dashboard preview) */
.jk-epgrid { overflow-x: auto; border-radius: var(--r-md); border: 1px solid var(--line-soft); }
.jk-epgrid__inner { min-width: 720px; }
.jk-epgrid__row { display: grid; grid-template-columns: 130px minmax(0,1fr); border-bottom: 1px solid var(--line-soft); }
.jk-epgrid__row:last-child { border-bottom: 0; }
.jk-epgrid__ch { display: flex; align-items: center; gap: var(--sp-2); padding: 10px var(--sp-3); background: var(--bg-inset); border-right: 1px solid var(--line-soft); }
.jk-epgrid__ch img { width: 38px; height: 26px; object-fit: contain; }
.jk-epgrid__slots { display: flex; }
.jk-epgrid__slot { flex: 1 1 0; min-width: 0; padding: 10px var(--sp-3); border-left: 1px solid var(--line-soft); }
.jk-epgrid__slot:first-child { border-left: 0; }
.jk-epgrid__slot.is-now { background: var(--accent-soft); }
.jk-epgrid__t { font-size: 10px; color: var(--tx-3); font-variant-numeric: tabular-nums; }
.jk-epgrid__p { font-size: var(--fs-12); }

/* ============================ PROGRAM INFO ============================== */
.jk-detail { display: grid; grid-template-columns: 260px minmax(0,1fr); gap: var(--sp-6); }
@media (max-width: 767px) { .jk-detail { grid-template-columns: 1fr; } }
.jk-detail__poster { border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--line-soft); background: var(--bg-inset); aspect-ratio: 2/3; }
.jk-detail__poster img { width: 100%; height: 100%; object-fit: cover; }
.jk-detail__title { font-family: var(--font-display); font-size: var(--fs-28); margin-bottom: var(--sp-2); }
.jk-detail__meta { display: flex; flex-wrap: wrap; gap: var(--sp-2); align-items: center; color: var(--tx-3); font-size: var(--fs-12); margin-bottom: var(--sp-4); }
.jk-detail__meta .sep { width: 3px; height: 3px; border-radius: 50%; background: currentColor; }
.jk-detail__cta { display: flex; flex-wrap: wrap; gap: var(--sp-3); margin: var(--sp-5) 0; }
.jk-proplist { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px,1fr)); gap: var(--sp-2) var(--sp-5); font-size: var(--fs-13); }
.jk-proplist__row { display: flex; gap: var(--sp-2); padding: 5px 0; border-bottom: 1px dashed var(--line-soft); }
.jk-proplist__k { color: var(--tx-3); flex: none; }
.jk-proplist__v { color: var(--tx); }

.jk-eps { display: flex; flex-wrap: wrap; gap: 6px; }
.jk-eps a {
  min-width: 42px; height: 34px; padding: 0 8px;
  display: grid; place-items: center;
  border-radius: var(--r-sm); border: 1px solid var(--line);
  background: var(--bg-card-2); font-size: var(--fs-12); font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.jk-eps a:hover { background: var(--bg-hover); }
.jk-eps a.is-active { background: var(--accent); color: var(--accent-tx); border-color: var(--accent); }

.jk-stars { display: inline-flex; gap: 2px; color: var(--accent-orange); }
.jk-stars svg { width: 14px; height: 14px; }

/* ============================== AUTH ==================================== */
.jk-auth { display: grid; grid-template-columns: 1.05fr .95fr; gap: var(--sp-6); align-items: stretch;
  min-height: min(640px, calc(100vh - var(--topbar-h) - var(--sp-12))); }
@media (max-width: 900px) { .jk-auth { grid-template-columns: 1fr; } .jk-auth__art { display: none; } }
.jk-auth__art { position: relative; border-radius: var(--r-xl); overflow: hidden; max-height: 640px;
  background: linear-gradient(160deg, var(--brand-600), var(--brand-900)); }
.jk-auth__art img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* Anh phong canh sang/toi doi theo theme (partials/scenery.blade.php) */
.jk-scenery { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.jk-scenery--ondark { display: none; }
[data-theme="dark"] .jk-scenery--onlight { display: none; }
[data-theme="dark"] .jk-scenery--ondark { display: block; }
.jk-auth__artbody { position: absolute; inset: auto 0 0 0; padding: var(--sp-8); color: #F1F7EC; background: linear-gradient(0deg, rgba(12,26,27,.78), transparent); }
.jk-auth__artbody h2 { font-family: var(--font-display); font-size: var(--fs-28); }
.jk-auth__form { display: grid; place-items: center; padding: var(--sp-8) var(--sp-6); }
.jk-auth__inner { width: min(400px, 100%); }
.jk-auth__inner h2 { font-family: var(--font-display); font-size: var(--fs-28); }
.jk-auth__inner > p { color: var(--tx-3); font-size: var(--fs-13); margin-bottom: var(--sp-6); }

/* ============================= BILLING ================================== */
.jk-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px,1fr)); gap: var(--sp-5); align-items: stretch; }
.jk-plan {
  position: relative; display: flex; flex-direction: column;
  padding: var(--sp-6);
  border-radius: var(--r-xl);
  background: var(--bg-card);
  border: 1px solid var(--line-soft);
  box-shadow: var(--shadow-1);
  transition: transform var(--t-base) var(--ease), box-shadow var(--t-base);
}
.jk-plan:hover { transform: translateY(-4px); box-shadow: var(--shadow-2); }
.jk-plan.is-popular { border-color: var(--accent); box-shadow: var(--shadow-2); }
.jk-plan__ribbon {
  position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
  padding: 4px var(--sp-4); border-radius: var(--r-pill);
  background: var(--accent-orange); color: #4A2E10;
  font-size: var(--fs-11); font-weight: 800; white-space: nowrap;
}
.jk-plan__name { font-family: var(--font-display); font-size: var(--fs-20); }
.jk-plan__desc { font-size: var(--fs-12); color: var(--tx-3); min-height: 40px; }
.jk-plan__price { display: flex; align-items: baseline; gap: 6px; margin: var(--sp-4) 0; }
.jk-plan__price b { font-family: var(--font-display); font-size: var(--fs-34); }
.jk-plan__price span { font-size: var(--fs-12); color: var(--tx-3); }
.jk-plan__feats { display: flex; flex-direction: column; gap: 9px; margin-bottom: var(--sp-5); font-size: var(--fs-13); }
.jk-plan__feat { display: flex; gap: var(--sp-2); align-items: flex-start; color: var(--tx-2); }
.jk-plan__feat svg { flex: none; width: 16px; height: 16px; color: var(--brand-600); margin-top: 3px; }
.jk-plan__cta { margin-top: auto; }

.jk-checkout { display: grid; grid-template-columns: minmax(0,1fr) 360px; gap: var(--sp-5); align-items: start; }
@media (max-width: 1023px) { .jk-checkout { grid-template-columns: minmax(0,1fr); } }
.jk-checkout__aside { position: sticky; top: calc(var(--topbar-h) + var(--sp-5)); }
@media (max-width: 1023px) { .jk-checkout__aside { position: static; } }
.jk-sumrow { display: flex; justify-content: space-between; gap: var(--sp-3); padding: 7px 0; font-size: var(--fs-13); }
.jk-sumrow > span:first-child { color: var(--tx-3); }
.jk-sumrow > span:last-child { font-weight: 700; text-align: right; }
.jk-sumrow--total { border-top: 1px solid var(--line); margin-top: var(--sp-2); padding-top: var(--sp-3); font-size: var(--fs-16); }

.jk-svcopt {
  display: flex; align-items: center; gap: var(--sp-3);
  padding: var(--sp-3) var(--sp-4);
  border-radius: var(--r-md); border: 1px solid var(--line);
  background: var(--bg-card-2); cursor: pointer;
  transition: border-color var(--t-fast), background var(--t-fast);
}
.jk-svcopt:hover { background: var(--bg-hover); }
.jk-svcopt input { accent-color: var(--accent); width: 17px; height: 17px; }
.jk-svcopt.is-checked { border-color: var(--accent); background: var(--accent-soft); }
.jk-svcopt__price { margin-left: auto; font-weight: 800; }

.jk-policy { border: 1px solid var(--line); border-radius: var(--r-md); background: var(--bg-card-2); padding: var(--sp-4); }
.jk-policy__scroll { max-height: 190px; overflow-y: auto; font-size: var(--fs-12); color: var(--tx-2); padding-right: var(--sp-2); }

.jk-cardbrands { display: flex; gap: var(--sp-2); flex-wrap: wrap; }
.jk-cardbrands span { padding: 5px 10px; border-radius: var(--r-xs); border: 1px solid var(--line); background: var(--bg-card-2); font-size: 10px; font-weight: 800; letter-spacing: .04em; color: var(--tx-2); }

/* ============================== ACCOUNT ================================= */
.jk-account { display: grid; grid-template-columns: 238px minmax(0,1fr); gap: var(--sp-5); align-items: start; }
@media (max-width: 900px) { .jk-account { grid-template-columns: 1fr; } }
.jk-accnav { display: flex; flex-direction: column; gap: 2px; }
.jk-accnav a {
  display: flex; align-items: center; gap: var(--sp-3);
  padding: 10px var(--sp-3); border-radius: var(--r-sm);
  font-size: var(--fs-13); color: var(--tx-2);
}
.jk-accnav a:hover { background: var(--bg-hover); color: var(--tx); }
.jk-accnav a.is-active { background: var(--accent-soft); color: var(--accent-soft-tx); font-weight: 700; }
.jk-accnav__sep { height: 1px; background: var(--line-soft); margin: var(--sp-2) 0; }

.jk-kv { display: grid; grid-template-columns: 150px minmax(0,1fr); gap: var(--sp-3); padding: 11px 0; border-bottom: 1px solid var(--line-soft); font-size: var(--fs-13); align-items: center; }
.jk-kv:last-child { border-bottom: 0; }
.jk-kv__k { color: var(--tx-3); }
@media (max-width: 560px) { .jk-kv { grid-template-columns: 1fr; gap: 4px; } }

/* =============================== CHAT =================================== */
.jk-chat { display: flex; flex-direction: column; height: 62vh; min-height: 380px; }
.jk-chat__list { flex: 1; overflow-y: auto; display: flex; flex-direction: column; gap: var(--sp-3); padding: var(--sp-2); }
.jk-msg { max-width: 76%; padding: 10px var(--sp-4); border-radius: var(--r-lg); font-size: var(--fs-13); background: var(--bg-card-2); }
.jk-msg--me { align-self: flex-end; background: var(--accent-soft); color: var(--accent-soft-tx); }
.jk-msg__time { display: block; margin-top: 4px; font-size: 10px; color: var(--tx-3); }
.jk-chat__compose { display: flex; gap: var(--sp-2); padding-top: var(--sp-3); border-top: 1px solid var(--line-soft); }

/* =============================== DOWNLOAD =============================== */
.jk-devices { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px,1fr)); gap: var(--sp-4); }
.jk-device { padding: var(--sp-5); border-radius: var(--r-lg); background: var(--bg-card-2); border: 1px solid var(--line-soft); }
.jk-device h4 { font-size: var(--fs-14); margin-bottom: 6px; }
.jk-device p { margin: 0; font-size: var(--fs-12); color: var(--tx-3); }

/* ================================ 404 =================================== */
.jk-404 { display: grid; place-items: center; text-align: center; padding: var(--sp-12) var(--sp-4); }
.jk-404 h1 { font-family: var(--font-display); font-size: 96px; line-height: 1; color: var(--accent-soft-tx); }
.jk-404 h3 { font-size: var(--fs-20); margin: var(--sp-4) 0 var(--sp-2); }

/* ========================= AUTOCOMPLETE (search) ======================== */
.jk-ac { position: relative; }
.jk-ac__list {
  position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 20;
  background: var(--bg-card); border: 1px solid var(--line);
  border-radius: var(--r-md); box-shadow: var(--shadow-3);
  overflow: hidden; max-height: 340px; overflow-y: auto;
}
.jk-ac__list div {
  padding: 10px var(--sp-4); font-size: var(--fs-13); cursor: pointer;
  border-bottom: 1px solid var(--line-soft);
}
.jk-ac__list div:last-child { border-bottom: 0; }
.jk-ac__list div:hover, .jk-ac__list div.autocomplete-active { background: var(--bg-hover); }
.jk-ac__list div a { display: none; }
.jk-ac__list div strong { font-weight: 600; }

/* ====================== video.js — theme overrides ====================== */
.video-js { font-family: var(--font-body); background-color: #0C1A1B; }
.video-js .vjs-poster { background-size: contain; background-color: #0C1A1B; }
.video-js .vjs-big-play-button {
  width: 76px; height: 76px; line-height: 76px;
  border-radius: 50%; border: 0;
  background: rgba(253,246,233,.9); color: #1B2F2F;
  top: 50%; left: 50%; transform: translate(-50%,-50%);
  /* video.js mac dinh dat margin-top/-left am de canh giua.
     Cong them translate(-50%,-50%) cua minh => nut lech 45px trai / 73px len. */
  margin: 0 !important;
  box-shadow: 0 10px 32px rgba(0,0,0,.35);
  transition: transform var(--t-fast) var(--ease);
}
/* Icon trong nut: canh dung tam, khong dua vao line-height */
.video-js .vjs-big-play-button .vjs-icon-placeholder {
  display: flex; align-items: center; justify-content: center;
  width: 100%; height: 100%; line-height: 1;
}
.video-js .vjs-big-play-button .vjs-icon-placeholder::before {
  position: static; width: auto; height: auto; line-height: 1;
  font-size: 34px; text-indent: 4px;   /* tam quang hoc cua hinh tam giac */
}
.video-js:hover .vjs-big-play-button { transform: translate(-50%,-50%) scale(1.06); background: #FDF6E9; }
.video-js .vjs-control-bar { background: linear-gradient(0deg, rgba(12,26,27,.92), rgba(12,26,27,0)); height: 46px; padding: 0 8px; }
.video-js .vjs-play-progress { background-color: var(--brand-300); }
.video-js .vjs-volume-level { background-color: var(--brand-300); }
.video-js .vjs-slider { background-color: rgba(245,240,230,.25); border-radius: var(--r-pill); }
.video-js .vjs-load-progress div { background: rgba(245,240,230,.28); }
/* [FIX 2026-08-25] Can giua nut timeshift bang flex thay vi margin-top cung nhac,
   va dung mau chu cua control bar de khop cac nut icon-font ben canh. */
.video-js .vjs-control-bar .vjs-button.timeshift { display: flex; align-items: center; justify-content: center; }
.video-js .vjs-control-bar .vjs-button.timeshift .vjs-icon-placeholder { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.video-js .vjs-control-bar .vjs-button.timeshift .vjs-icon-placeholder::before { content: none; }
.video-js .vjs-control-bar .vjs-button.timeshift .jk-i { width: 18px; height: 18px; color: #fff; }
.video-js .vjs-control-bar.hidden { opacity: 0; pointer-events: none; }
#stream-info {
  position: absolute; top: var(--sp-4); left: var(--sp-4); z-index: 4;
  padding: 8px var(--sp-4); border-radius: var(--r-md);
  background: rgba(12,26,27,.6); backdrop-filter: blur(8px); color: #F5F0E6;
}
#stream-info .stream-name { font-family: var(--font-display); font-size: var(--fs-16); }
#stream-info .stream-cate { margin: 0; font-size: var(--fs-11); color: #CFE3C6; }
.skipads {
  position: absolute; right: var(--sp-4); bottom: 64px; z-index: 6;
  padding: 8px var(--sp-4); border-radius: var(--r-pill);
  background: rgba(253,246,233,.92); color: #1B2F2F; font-size: var(--fs-12); font-weight: 700;
}

/* =========================== select2 overrides ========================== */
.select2-container--default .select2-selection--single {
  height: 44px !important; border-radius: var(--r-sm) !important;
  border: 1px solid var(--line) !important; background: var(--bg-card-2) !important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 42px !important; color: var(--tx) !important; padding-left: 14px; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 42px !important; }
.select2-dropdown { background: var(--bg-card); border-color: var(--line); border-radius: var(--r-sm); }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--accent-soft); color: var(--accent-soft-tx); }
.select2-container--default .select2-results__option { color: var(--tx); }
.select2-search--dropdown .select2-search__field { background: var(--bg-card-2); border-color: var(--line); color: var(--tx); border-radius: var(--r-xs); }

/* ========================= SELLER PORTAL ================================ */
.jk-seller-badge {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 3px 10px; border-radius: var(--r-pill);
  background: var(--accent-soft); color: var(--accent-soft-tx);
  font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
  flex: none; white-space: nowrap;
}
/* Sidebar hep: badge xuong dong thay vi bi bop met */
.jk-sidebar .jk-brand { flex-wrap: wrap; }

/* Ma tran gia dai ly */
.jk-matrix { overflow-x: auto; border-radius: var(--r-lg); border: 1px solid var(--line-soft); background: var(--bg-card); }
.jk-matrix table { min-width: 680px; border-collapse: separate; border-spacing: 0; }
.jk-matrix th, .jk-matrix td { padding: var(--sp-4); text-align: center; vertical-align: top; border-bottom: 1px solid var(--line-soft); }
.jk-matrix thead th { background: var(--bg-inset); font-size: var(--fs-13); }
.jk-matrix thead th:first-child { text-align: left; }
.jk-matrix tbody td:first-child { text-align: left; white-space: nowrap; font-weight: 700; background: var(--bg-inset); }
.jk-matrix tbody tr:last-child th, .jk-matrix tbody tr:last-child td { border-bottom: 0; }
.jk-matrix__plan { display: flex; flex-direction: column; gap: 2px; align-items: center; }
.jk-matrix__plan b { font-family: var(--font-display); font-size: var(--fs-16); }
.jk-matrix__plan span { font-size: var(--fs-11); color: var(--tx-3); }
.jk-matrix__price { font-family: var(--font-display); font-size: var(--fs-20); font-weight: 700; }
.jk-matrix__tier { font-size: var(--fs-11); color: var(--tx-2); display: block; }
.jk-matrix__more { display: none; }
.jk-matrix__more.is-open { display: block; }
.jk-matrix__toggle { font-size: var(--fs-11); color: var(--accent-soft-tx); text-decoration: underline; }

.jk-sellercta {
  display: grid; gap: var(--sp-5); align-items: center;
  grid-template-columns: 1.4fr auto;
  padding: var(--sp-8);
  border-radius: var(--r-xl);
  background: linear-gradient(120deg, var(--accent) 0%, color-mix(in srgb, var(--accent) 60%, #0C1A1B) 100%);
  color: #F1F7F6;
}
.jk-sellercta h3 { font-family: var(--font-display); font-size: var(--fs-28); margin-bottom: 6px; }
@media (max-width: 767px) { .jk-sellercta { grid-template-columns: 1fr; padding: var(--sp-6); } }

/* Gio hang mua tai khoan */
.jk-cart td[contenteditable] {
  outline: none; border-radius: var(--r-xs);
  background: var(--bg-card-2); cursor: text;
  min-width: 64px;
}
.jk-cart td[contenteditable]:focus { box-shadow: 0 0 0 2px var(--ring); }

/* Bang thao tac tai khoan */
.jk-iconaction {
  width: 32px; height: 32px; border-radius: var(--r-sm);
  display: inline-grid; place-items: center;
  border: 1px solid var(--line); background: var(--bg-card-2); color: var(--tx-2);
}
.jk-iconaction:hover { background: var(--bg-hover); color: var(--tx); }
.jk-iconaction--danger:hover { border-color: var(--danger); color: var(--danger); }

/* ═══════════ Danh sach kenh theo goi (thay anh tinh cu) ═══════════ */
.jk-pkg-stack { display: flex; flex-direction: column; gap: var(--sp-5); }

.jk-pkg { overflow: hidden; }
.jk-pkg__head {
  display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4);
  padding: var(--sp-4) var(--sp-5);
  border-bottom: 1px solid var(--line-soft);
  background: var(--bg-card-2);
}
.jk-pkg__title { font-family: var(--font-display); font-size: var(--fs-18); color: var(--tx); }
.jk-pkg__count { font-size: var(--fs-12); color: var(--tx-2); margin-top: 2px; }

.jk-pkg__grid {
  display: grid; gap: var(--sp-3);
  grid-template-columns: repeat(auto-fill, minmax(104px, 1fr));
  padding: var(--sp-5);
}
.jk-pkg__ch { display: block; }
.jk-pkg__logo {
  position: relative; display: block; aspect-ratio: 2 / 1;
  border-radius: var(--r-sm); overflow: hidden;
  background: var(--bg-card-2); box-shadow: var(--shadow-1);
}
.jk-pkg__logo img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: center; border-radius: inherit;
}
.jk-pkg__ch:hover .jk-pkg__logo { box-shadow: var(--shadow-2); }

@media (max-width: 600px) {
  .jk-pkg__grid { grid-template-columns: repeat(auto-fill, minmax(86px, 1fr)); gap: var(--sp-2); padding: var(--sp-4); }
  .jk-pkg__head { padding: var(--sp-4); }
}

/* Mascot BBinfo — hero trang chu va trang 404 (them 2026-08-25) */
.jk-hero__mascot {
    position: absolute;
    right: clamp(8px, 4vw, 48px);
    bottom: 0;
    height: clamp(120px, 62%, 300px);
    width: auto;
    z-index: 2;
    pointer-events: none;
    filter: drop-shadow(0 6px 18px rgba(0, 0, 0, .35));
}
/* Man hinh hep: mascot de che mat chu -> an di */
@media (max-width: 640px) {
    .jk-hero__mascot { display: none; }
}

.jk-404__mascot {
    width: clamp(140px, 34vw, 240px);
    height: auto;
    margin-bottom: var(--sp-2);
    filter: drop-shadow(0 6px 18px rgba(0, 0, 0, .25));
}
