/* ============================================
   LaoDev - Main Stylesheet
   ============================================ */

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

:root {
  --p: #06b6d4;
  --pd: #0891b2;
  --pdd: #0e7490;
  --pl: #cffafe;
  --pl2: #ecfeff;
  --p-rgb: 6, 182, 212;
  --s: #0f172a;
  --ac: #fbbf24;
  --vp: #7c3aed;
  --ok: #10b981;
  --er: #ef4444;
  --wn: #f59e0b;
  --bg: #f8fafc;
  --cd: #ffffff;
  --tx: #0f172a;
  --t2: #475569;
  --mu: #94a3b8;
  --bd: #e2e8f0;
  --bd2: #cbd5e1;
  --r: 10px;
  --rl: 14px;
  --sh: 0 1px 3px rgba(0, 0, 0, 0.06);
  --shm: 0 4px 14px rgba(var(--p-rgb), 0.1);
  --shl: 0 12px 32px rgba(var(--p-rgb), 0.18);
}

body,
div,
span,
p,
h1,
h2,
h3,
h4,
a,
button,
input,
select,
textarea,
li,
td,
th {
  font-family: "Phetsarath OT", sans-serif;
}

body {
  font-family: "Phetsarath OT", sans-serif;
  background: #fff;
  color: var(--tx);
  line-height: 1.5;
}

button,
a {
  cursor: pointer;
  font-family: inherit;
}
a {
  text-decoration: none;
  color: inherit;
}
ul {
  list-style: none;
}
table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

/* ============ NAVIGATION ============ */
.nav {
  background: #fff;
  border-bottom: 1px solid var(--bd);
  padding: 0 1.5rem;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: sticky;
  top: 0;
  z-index: 100;
  box-shadow: var(--sh);
}
.nl {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}
.brand {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 18px;
  font-weight: 800;
  color: var(--tx);
}
.brand .bi {
  width: 36px;
  height: 36px;
  background: linear-gradient(135deg, var(--p), var(--pd));
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 18px;
  font-weight: 900;
}
.menu {
  display: flex;
  gap: 2px;
}
.mi {
  padding: 8px 12px;
  font-size: 13.5px;
  color: var(--t2);
  border-radius: 8px;
  font-weight: 500;
  white-space: nowrap;
  transition: all 0.15s;
  border: none;
  background: transparent;
}
.mi:hover {
  color: var(--p);
  background: var(--pl2);
}
.mi.act {
  color: var(--tx);
  background: var(--pl);
  font-weight: 700;
}

.nr {
  display: flex;
  align-items: center;
  gap: 8px;
}
.sb {
  position: relative;
}
.sb input {
  width: 230px;
  padding: 8px 12px 8px 36px;
  border: 1px solid var(--bd);
  border-radius: 22px;
  font-size: 12px;
  background: var(--bg);
}
.sb input:focus {
  outline: none;
  border-color: var(--p);
  background: #fff;
}
.sb svg {
  position: absolute;
  left: 13px;
  top: 10px;
  color: var(--mu);
  width: 14px;
}
.kbd {
  position: absolute;
  right: 9px;
  top: 7px;
  background: #fff;
  border: 1px solid var(--bd);
  padding: 1px 5px;
  border-radius: 4px;
  font-size: 9px;
  color: var(--mu);
  font-weight: 600;
}
.ib {
  background: transparent;
  border: none;
  color: var(--t2);
  font-size: 18px;
  width: 36px;
  height: 36px;
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.ib:hover {
  background: var(--bg);
  color: var(--p);
}
.dot {
  position: absolute;
  top: 5px;
  right: 5px;
  width: 7px;
  height: 7px;
  background: var(--er);
  border-radius: 50%;
  border: 2px solid #fff;
}
.bl {
  background: transparent;
  border: none;
  color: var(--tx);
  font-size: 13px;
  font-weight: 600;
  padding: 7px 14px;
}
.bl:hover {
  color: var(--p);
}
.bs {
  background: linear-gradient(135deg, var(--p), var(--pd));
  color: #fff;
  border: none;
  padding: 9px 20px;
  border-radius: 22px;
  font-size: 13px;
  font-weight: 700;
  box-shadow: 0 4px 12px rgba(var(--p-rgb), 0.3);
}
.bs:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(var(--p-rgb), 0.4);
}

/* ============ PAGE LAYOUT ============ */
.pg {
  display: none;
}
.pg.on {
  display: block;
  animation: fi 0.3s;
}
@keyframes fi {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
  }
}

.ph {
  background: linear-gradient(180deg, var(--pl2), var(--pl));
  padding: 3rem 2rem;
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid #a5f3fc;
}
.ph::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(var(--p-rgb), 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(var(--p-rgb), 0.05) 1px, transparent 1px);
  background-size: 40px 40px;
  pointer-events: none;
}
.phw {
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2rem;
  flex-wrap: wrap;
  position: relative;
  z-index: 1;
}
.pt {
  font-size: 2.2rem;
  font-weight: 800;
}
.pts {
  font-size: 13px;
  color: var(--t2);
  margin-top: 6px;
  max-width: 600px;
}

/* ============ MAIN GRID ============ */
.mn {
  max-width: 1280px;
  margin: 0 auto;
  padding: 2rem;
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 1.5rem;
}
@media (max-width: 900px) {
  .mn {
    grid-template-columns: 1fr;
  }
}

.sd {
  position: sticky;
  top: 80px;
  height: fit-content;
}
.sdc {
  background: #fff;
  border-radius: var(--rl);
  border: 1px solid var(--bd);
  overflow: hidden;
  box-shadow: var(--sh);
}
.sdh {
  background: linear-gradient(135deg, var(--p), var(--pd));
  color: #fff;
  padding: 13px 18px;
  font-size: 14.5px;
  font-weight: 700;
  text-align: center;
}
.sdl {
  padding: 8px;
}
.si {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border-radius: 8px;
  font-size: 12.5px;
  color: var(--t2);
  transition: all 0.15s;
  margin-bottom: 2px;
  font-weight: 500;
  cursor: pointer;
  border: none;
  background: transparent;
  width: 100%;
  text-align: left;
}
.si:hover {
  background: var(--bg);
  color: var(--pd);
}
.si.act {
  background: var(--pl);
  color: var(--pd);
  font-weight: 700;
}
.sic {
  margin-left: auto;
  background: var(--bg);
  color: var(--t2);
  font-size: 10.5px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 10px;
  min-width: 26px;
  text-align: center;
}
.si.act .sic {
  background: var(--p);
  color: #fff;
}

/* ============ COURSE CARDS ============ */
.cg {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1.1rem;
}
.cc {
  background: #fff;
  border-radius: var(--rl);
  border: 1px solid var(--bd);
  overflow: hidden;
  transition: all 0.25s;
  display: flex;
  flex-direction: column;
  cursor: pointer;
}
.cc:hover {
  box-shadow: var(--shl);
  transform: translateY(-4px);
  border-color: var(--pl);
}
.ci {
  height: 175px;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3.5rem;
}
.ci.b1 {
  background: linear-gradient(135deg, #dc2626, #7f1d1d);
}
.ci.b2 {
  background: linear-gradient(135deg, #1e3a8a, #0c4a6e);
}
.ci.b3 {
  background: linear-gradient(135deg, #0c4a6e, #082f49);
}
.ci.b4 {
  background: linear-gradient(135deg, #7c2d12, #451a03);
}
.ci.b5 {
  background: linear-gradient(135deg, #1e40af, #312e81);
}
.ci.b6 {
  background: linear-gradient(135deg, #075985, #0c4a6e);
}
.ci.b7 {
  background: linear-gradient(135deg, #065f46, #022c22);
}
.ci.b8 {
  background: linear-gradient(135deg, #831843, #500724);
}
.ci.b9 {
  background: linear-gradient(135deg, var(--pdd), #155e75);
}
.ci .em {
  filter: drop-shadow(0 3px 6px rgba(0, 0, 0, 0.3));
  z-index: 1;
  color: #fff;
}
.ci::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(0, 0, 0, 0.35));
}
.cb {
  position: absolute;
  top: 10px;
  left: 10px;
  padding: 4px 10px;
  border-radius: 5px;
  font-size: 10px;
  font-weight: 800;
  color: #fff;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 4px;
  backdrop-filter: blur(6px);
}
.cb.lv {
  background: rgba(220, 38, 38, 0.95);
}
.cb.lv::before {
  content: "";
  width: 6px;
  height: 6px;
  background: #fff;
  border-radius: 50%;
  animation: pl 1.5s infinite;
}
.cb.nw {
  background: rgba(245, 158, 11, 0.95);
}
.cb.ht {
  background: rgba(124, 58, 237, 0.95);
}
.cb.fr {
  background: rgba(16, 185, 129, 0.95);
}
@keyframes pl {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.4;
  }
}

.cd {
  position: absolute;
  top: 10px;
  right: 10px;
  background: linear-gradient(135deg, #f59e0b, #dc2626);
  color: #fff;
  padding: 5px 10px;
  border-radius: 7px;
  font-size: 11px;
  font-weight: 800;
  z-index: 2;
  box-shadow: 0 4px 10px rgba(245, 158, 11, 0.4);
}
.cby {
  padding: 1rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.ct {
  font-size: 14.5px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--tx);
  min-height: 2.6em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.cin {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
  border-top: 1px solid var(--bd);
  border-bottom: 1px solid var(--bd);
}
.cav {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--p), var(--pd));
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
  flex-shrink: 0;
}
.cnm {
  font-size: 12px;
  font-weight: 600;
  color: var(--tx);
}
.crl {
  font-size: 10.5px;
  color: var(--mu);
  margin-top: 1px;
}

.crw {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 11.5px;
  min-height: 24px;
}
.cs {
  display: flex;
  align-items: center;
  gap: 5px;
}
.cs .rn {
  font-weight: 700;
  color: var(--tx);
  font-size: 12px;
}
.cs .si2 {
  color: var(--ac);
  font-size: 12px;
  letter-spacing: 1px;
}
.cs .rc {
  color: var(--mu);
  font-size: 11px;
}
.cst {
  color: var(--t2);
  display: flex;
  align-items: center;
  gap: 4px;
}
.clc {
  background: #fee2e2;
  color: #dc2626;
  padding: 3px 10px;
  border-radius: 5px;
  font-size: 11px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.cpr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 0.4rem;
}
.cp {
  font-size: 17px;
  font-weight: 800;
  color: var(--tx);
}
.cpo {
  font-size: 12px;
  color: var(--mu);
  text-decoration: line-through;
  font-weight: 500;
  margin-left: 6px;
}

/* ============ TOOLBAR ============ */
.tb {
  background: #fff;
  border-radius: var(--rl);
  border: 1px solid var(--bd);
  padding: 10px;
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 1.25rem;
  flex-wrap: wrap;
  box-shadow: var(--sh);
}
.tbs {
  flex: 1;
  position: relative;
  min-width: 200px;
}
.tbs input {
  width: 100%;
  padding: 8px 14px 8px 36px;
  border: 1px solid var(--bd);
  border-radius: 22px;
  font-size: 12.5px;
  background: var(--bg);
}
.tbs input:focus {
  outline: none;
  border-color: var(--p);
  background: #fff;
}

/* ============ PAGINATION ============ */
.pgn {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 5px;
  margin-top: 2rem;
  padding: 1rem;
}
.pgb {
  min-width: 36px;
  height: 36px;
  border: 1px solid var(--bd);
  background: #fff;
  border-radius: 8px;
  font-size: 12.5px;
  color: var(--t2);
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 10px;
}
.pgb:hover {
  border-color: var(--p);
  color: var(--p);
}
.pgb.act {
  background: var(--p);
  color: #fff;
  border-color: var(--p);
}
.pgb:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* ============ HERO ============ */
.hr {
  background: linear-gradient(135deg, var(--p), var(--pd) 50%, var(--pdd));
  color: #fff;
  padding: 4rem 2rem;
  position: relative;
  overflow: hidden;
}
.hr::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.08) 1px, transparent 1px);
  background-size: 50px 50px;
}
.hrw {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 3rem;
  position: relative;
  z-index: 1;
  align-items: center;
}
@media (max-width: 780px) {
  .hrw {
    grid-template-columns: 1fr;
  }
}

.hb {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(10px);
  padding: 6px 14px;
  border-radius: 18px;
  font-size: 11.5px;
  margin-bottom: 1rem;
  border: 1px solid rgba(255, 255, 255, 0.2);
}
.hr h1 {
  font-size: 2.8rem;
  font-weight: 900;
  line-height: 1.15;
  margin-bottom: 1rem;
}
.hr h1 span {
  color: #fde047;
}
.hr p {
  font-size: 1.05rem;
  opacity: 0.95;
  margin-bottom: 1.75rem;
  line-height: 1.6;
  max-width: 560px;
}

.hc {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 2rem;
}
.hbt {
  padding: 12px 26px;
  border-radius: 28px;
  font-size: 13.5px;
  font-weight: 700;
  border: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.hbt.pri {
  background: #fff;
  color: var(--pd);
}
.hbt.pri:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}
.hbt.ot {
  background: transparent;
  color: #fff;
  border: 2px solid rgba(255, 255, 255, 0.4);
}
.hbt.ot:hover {
  background: rgba(255, 255, 255, 0.1);
}

.hst {
  display: flex;
  gap: 1.75rem;
  flex-wrap: wrap;
}
.hsi .n {
  font-size: 1.6rem;
  font-weight: 800;
  color: #fde047;
}
.hsi .l {
  font-size: 11.5px;
  opacity: 0.9;
}

.hv {
  position: relative;
  height: 380px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hvc {
  position: absolute;
  background: rgba(255, 255, 255, 0.95);
  color: var(--tx);
  padding: 12px 16px;
  border-radius: 12px;
  font-size: 12.5px;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 9px;
  box-shadow: var(--shl);
}
.hvc.c1 {
  top: 10px;
  left: 0;
  animation: fl 3s ease-in-out infinite;
}
.hvc.c2 {
  top: 130px;
  right: 0;
  animation: fl 3s ease-in-out infinite 0.5s;
}
.hvc.c3 {
  bottom: 50px;
  left: 30px;
  animation: fl 3s ease-in-out infinite 1s;
}
.hvc.c4 {
  bottom: 0;
  right: 30px;
  animation: fl 3s ease-in-out infinite 1.5s;
}
@keyframes fl {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}
.hvc .ic {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 15px;
  flex-shrink: 0;
}
.hvc.c1 .ic {
  background: var(--p);
}
.hvc.c2 .ic {
  background: var(--vp);
}
.hvc.c3 .ic {
  background: var(--ac);
}
.hvc.c4 .ic {
  background: var(--ok);
}
.hvr {
  width: 260px;
  height: 260px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(255, 255, 255, 0.2),
    transparent 70%
  );
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 5.5rem;
}

/* ============ STATS BAR ============ */
.sb2 {
  background: #fff;
  padding: 1.5rem 2rem;
  border-bottom: 1px solid var(--bd);
}
.sb2w {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 1rem;
}
.sb2i {
  text-align: center;
}
.sb2n {
  font-size: 1.7rem;
  font-weight: 800;
  color: var(--p);
}
.sb2l {
  font-size: 11.5px;
  color: var(--t2);
  margin-top: 2px;
  font-weight: 500;
}

/* ============ SECTION ============ */
.sc {
  max-width: 1280px;
  margin: 0 auto;
  padding: 2.5rem 2rem;
}
.sch {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
  gap: 1rem;
  flex-wrap: wrap;
}
.sch h2 {
  font-size: 1.55rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  gap: 8px;
}
.sch h2 svg {
  color: var(--p);
  width: 24px;
}
.sch .sb3 {
  font-size: 12.5px;
  color: var(--t2);
  margin-top: 3px;
  font-weight: 400;
}
.scl {
  font-size: 13px;
  color: var(--p);
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 4px;
  border: none;
  background: transparent;
}

/* ============ LIVE CARDS ============ */
.lvi {
  display: flex;
  background: #fff;
  border-radius: var(--rl);
  border: 1px solid var(--bd);
  overflow: hidden;
  margin-bottom: 1.25rem;
  transition: all 0.2s;
}
.lvi:hover {
  box-shadow: var(--shl);
  border-color: var(--pl);
}
.lvg {
  width: 380px;
  height: 240px;
  flex-shrink: 0;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3rem;
}
.lvg.bv1 {
  background: linear-gradient(135deg, #1e3a8a, #0c4a6e);
}
.lvg.bv2 {
  background: linear-gradient(135deg, #0c4a6e, #082f49);
}
.lvg.bv3 {
  background: linear-gradient(135deg, #dc2626, #7f1d1d);
}
.lvg .lbl {
  position: absolute;
  top: 14px;
  left: 14px;
  background: rgba(220, 38, 38, 0.95);
  color: #fff;
  padding: 5px 12px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 800;
  display: flex;
  align-items: center;
  gap: 5px;
}
.lvg .lbl::before {
  content: "";
  width: 6px;
  height: 6px;
  background: #fff;
  border-radius: 50%;
  animation: pl 1.5s infinite;
}
.lvg .em {
  color: #fff;
  filter: drop-shadow(0 3px 6px rgba(0, 0, 0, 0.3));
  z-index: 1;
}
.lvb {
  padding: 1.5rem 1.75rem;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.lvt {
  font-size: 18px;
  font-weight: 800;
  color: var(--tx);
  margin-bottom: 0.6rem;
}
.lvd {
  font-size: 13px;
  color: var(--t2);
  line-height: 1.6;
  margin-bottom: 1rem;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.lvm {
  display: flex;
  gap: 1.5rem;
  font-size: 12.5px;
  color: var(--t2);
  margin-bottom: 1rem;
  flex-wrap: wrap;
}
.lvm span {
  display: flex;
  align-items: center;
  gap: 5px;
}
.lvf {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid var(--bd);
  flex-wrap: wrap;
}
.lvp {
  font-size: 1.4rem;
  font-weight: 800;
  color: var(--p);
}
.lvgrp {
  font-size: 11px;
  color: var(--t2);
  margin-top: 2px;
}
.lvgrp .gtag {
  background: var(--pl);
  color: var(--pd);
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 700;
  margin-left: 4px;
}
.lvbt {
  background: linear-gradient(135deg, var(--p), var(--pd));
  color: #fff;
  border: none;
  padding: 10px 22px;
  border-radius: 8px;
  font-size: 12.5px;
  font-weight: 700;
}
.lvbt:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 15px rgba(var(--p-rgb), 0.35);
}
@media (max-width: 780px) {
  .lvi {
    flex-direction: column;
  }
  .lvg {
    width: 100%;
    height: 200px;
  }
}

/* ============ PROMOTION RIBBON ============ */
.pr {
  background: #fff;
  border-radius: var(--rl);
  padding: 1rem 1.4rem;
  display: flex;
  align-items: center;
  gap: 12px;
  box-shadow: var(--shm);
  border: 1px solid var(--pl);
  min-width: 320px;
}
.pri {
  width: 46px;
  height: 46px;
  background: linear-gradient(135deg, var(--p), var(--pd));
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 22px;
  font-weight: 900;
  flex-shrink: 0;
}
.prt {
  font-size: 10.5px;
  color: var(--pd);
  font-weight: 700;
  letter-spacing: 0.1em;
}
.prx {
  font-size: 13.5px;
  color: var(--tx);
  font-weight: 600;
  margin-top: 2px;
}
.prx .hl {
  color: var(--er);
  font-weight: 800;
}

/* ============ BOOKS ============ */
.bk {
  background: #fff;
  border-radius: var(--rl);
  border: 1px solid var(--bd);
  overflow: hidden;
  transition: all 0.2s;
  display: flex;
  flex-direction: column;
}
.bk:hover {
  box-shadow: var(--shl);
  transform: translateY(-3px);
}
.bki {
  height: 220px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3.5rem;
}
.bki.eb1 {
  background: linear-gradient(135deg, #0c4a6e, #082f49);
}
.bki.eb2 {
  background: linear-gradient(135deg, #1e3a8a, #312e81);
}
.bki.eb3 {
  background: linear-gradient(135deg, #7c2d12, #451a03);
}
.bki.eb4 {
  background: linear-gradient(135deg, #831843, #500724);
}
.bki.eb5 {
  background: linear-gradient(135deg, #065f46, #022c22);
}
.bki.eb6 {
  background: linear-gradient(135deg, #dc2626, #7f1d1d);
}
.bkb {
  position: absolute;
  top: 0;
  left: 0;
  background: linear-gradient(135deg, #ef4444, #dc2626);
  color: #fff;
  padding: 5px 12px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.05em;
  clip-path: polygon(0 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
  z-index: 2;
}
.bkb.fb {
  background: linear-gradient(135deg, #10b981, #059669);
}
.bkb.vb {
  background: linear-gradient(135deg, #7c3aed, #6d28d9);
}

/* NEW: Corner badge (top-right) — pill style, like programs */
.bkb-corner {
  position: absolute;
  top: 12px;
  right: 12px;
  padding: 5px 12px;
  border-radius: 8px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.03em;
  z-index: 3;
  color: #fff;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25);
  backdrop-filter: blur(4px);
}
.bkb-corner.fr {
  background: linear-gradient(135deg, #10b981, #059669);
}
.bkb-corner.vp {
  background: linear-gradient(135deg, #a855f7, #7c3aed);
}

.bki .em {
  color: #fff;
  z-index: 1;
}
.bkbody {
  padding: 1.1rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.bkt {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--tx);
  min-height: 2.8em;
}
.bkd {
  font-size: 12.5px;
  color: var(--t2);
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bkm {
  display: flex;
  gap: 1rem;
  font-size: 11.5px;
  color: var(--t2);
  padding: 8px 0;
  border-top: 1px solid var(--bd);
}
.bkpr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
}
.bktag {
  display: flex;
  align-items: center;
  gap: 6px;
}
.bkfree {
  background: #d1fae5;
  color: #065f46;
  padding: 4px 10px;
  border-radius: 5px;
  font-size: 11px;
  font-weight: 800;
}
.bkpdf {
  background: var(--pl);
  color: var(--pd);
  padding: 4px 8px;
  border-radius: 5px;
  font-size: 10.5px;
  font-weight: 700;
}
.bkprc {
  font-size: 18px;
  font-weight: 800;
  color: var(--vp);
}
.bkbt {
  background: linear-gradient(135deg, var(--p), var(--pd));
  color: #fff;
  border: none;
  padding: 8px 14px;
  border-radius: 7px;
  font-size: 11.5px;
  font-weight: 700;
}
.bkbt.gn {
  background: linear-gradient(135deg, var(--ok), #059669);
}
.bkbt.pp {
  background: linear-gradient(135deg, var(--vp), #6d28d9);
}

/* ============ FORMS / AUTH ============ */
.ax {
  min-height: calc(100vh - 64px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  background: linear-gradient(135deg, var(--pl2), #dbeafe);
}
.axc {
  background: #fff;
  border-radius: var(--rl);
  max-width: 980px;
  width: 100%;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr 1fr;
  box-shadow: var(--shl);
}
@media (max-width: 780px) {
  .axc {
    grid-template-columns: 1fr;
    max-width: 460px;
  }
  .axs {
    display: none;
  }
}
.axs {
  background: linear-gradient(135deg, var(--p), var(--pd));
  color: #fff;
  padding: 2.5rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  overflow: hidden;
}
.axs::before {
  content: "";
  position: absolute;
  top: -30%;
  right: -30%;
  width: 380px;
  height: 380px;
  background: radial-gradient(circle, rgba(251, 191, 36, 0.3), transparent 70%);
  border-radius: 50%;
}
.axs h3 {
  font-size: 1.6rem;
  font-weight: 800;
  margin: 1.75rem 0 0.75rem;
  position: relative;
  z-index: 1;
}
.axs p {
  opacity: 0.9;
  line-height: 1.6;
  position: relative;
  z-index: 1;
  font-size: 13.5px;
  margin-bottom: 1rem;
}
.axs ul {
  position: relative;
  z-index: 1;
  margin-top: 1rem;
}
.axs li {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 0;
  font-size: 12.5px;
}
.axf {
  padding: 2.5rem 2.25rem;
}
.axf h2 {
  font-size: 1.5rem;
  font-weight: 800;
  margin-bottom: 0.25rem;
}
.axf .sub {
  font-size: 12.5px;
  color: var(--t2);
  margin-bottom: 1.5rem;
}

.fd {
  margin-bottom: 0.85rem;
}
.fd label {
  display: block;
  font-size: 11.5px;
  font-weight: 600;
  color: var(--t2);
  margin-bottom: 5px;
}
.fd input,
.fd select,
.fd textarea {
  width: 100%;
  padding: 10px 13px;
  border: 1.5px solid var(--bd);
  border-radius: 9px;
  font-size: 13px;
  color: var(--tx);
  background: #fff;
  font-family: inherit;
  transition: all 0.15s;
}
.fd input:focus,
.fd select:focus,
.fd textarea:focus {
  outline: none;
  border-color: var(--p);
  box-shadow: 0 0 0 3px rgba(var(--p-rgb), 0.1);
}
.frw {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.crw2 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 11.5px;
  color: var(--t2);
  margin: 0.75rem 0;
}
.crw2 label {
  display: flex;
  align-items: center;
  gap: 6px;
}
.crw2 a {
  color: var(--p);
  font-weight: 600;
}

.bfu {
  width: 100%;
  background: linear-gradient(135deg, var(--p), var(--pd));
  color: #fff;
  border: none;
  padding: 12px;
  border-radius: 11px;
  font-size: 13.5px;
  font-weight: 700;
  margin-top: 0.25rem;
}
.bfu:hover {
  box-shadow: 0 8px 20px rgba(var(--p-rgb), 0.35);
  transform: translateY(-1px);
}

.al {
  padding: 10px 13px;
  border-radius: 9px;
  font-size: 12px;
  margin-bottom: 0.9rem;
  display: none;
  align-items: center;
  gap: 8px;
}
.al.on {
  display: flex;
}
.al.er {
  background: #fee2e2;
  color: #991b1b;
  border: 1px solid #fca5a5;
}
.al.ok {
  background: #d1fae5;
  color: #065f46;
  border: 1px solid #6ee7b7;
}
.al.in {
  background: var(--pl);
  color: var(--pdd);
  border: 1px solid #67e8f9;
}

.dvr {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 1.1rem 0;
  color: var(--mu);
  font-size: 11px;
}
.dvr::before,
.dvr::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--bd);
}

.scb {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.scbi {
  padding: 10px;
  border: 1.5px solid var(--bd);
  background: #fff;
  border-radius: 9px;
  font-size: 12px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  color: var(--tx);
}
.scbi:hover {
  border-color: var(--p);
  background: var(--bg);
}
.afn {
  text-align: center;
  margin-top: 1.1rem;
  font-size: 12.5px;
  color: var(--t2);
}
.afn a {
  color: var(--p);
  font-weight: 700;
}
.pss {
  margin-top: 5px;
}
.psb {
  height: 4px;
  background: var(--bd);
  border-radius: 2px;
  overflow: hidden;
}
.psf {
  height: 100%;
  width: 0;
  transition: all 0.3s;
}
.pst {
  font-size: 10.5px;
  color: var(--mu);
  margin-top: 3px;
}

/* ============ PAYMENT PAGE ============ */
.pyw {
  max-width: 1100px;
  margin: 0 auto;
  padding: 2rem;
}
.pyg {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 1.25rem;
  margin-bottom: 2rem;
}
@media (max-width: 900px) {
  .pyg {
    grid-template-columns: 1fr;
  }
}
.pyc {
  background: #fff;
  border-radius: var(--rl);
  border: 1px solid var(--bd);
  padding: 1.5rem;
  transition: all 0.2s;
}
.pyc:hover {
  box-shadow: var(--shl);
  border-color: var(--pl);
}
.pyh {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.25rem;
}
.pyhl {
  display: flex;
  align-items: center;
  gap: 10px;
}
.pyic {
  width: 50px;
  height: 50px;
  border-radius: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  font-weight: 900;
  color: #fff;
}
.pyic.bcel {
  background: linear-gradient(135deg, #7c3aed, #5b21b6);
}
.pyic.ldb {
  background: linear-gradient(135deg, #10b981, #047857);
}
.pyic.apb {
  background: linear-gradient(135deg, var(--pd), var(--pdd));
}
.pyn {
  font-size: 15px;
  font-weight: 800;
  color: var(--tx);
}
.pys {
  font-size: 11.5px;
  color: var(--t2);
  margin-top: 2px;
}
.pyt {
  background: var(--bg);
  color: var(--t2);
  padding: 4px 12px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 600;
}
.pyacc {
  background: var(--bg);
  border-radius: var(--r);
  padding: 1rem 1.25rem;
  margin-bottom: 1rem;
}
.pyacl {
  font-size: 11px;
  color: var(--t2);
  margin-bottom: 4px;
  font-weight: 500;
}
.pyacn {
  font-size: 22px;
  font-weight: 800;
  color: var(--tx);
  letter-spacing: 0.05em;
  font-family: "Consolas", monospace;
}
.pycp {
  background: #fff;
  border: 1px solid var(--bd);
  border-radius: 6px;
  width: 32px;
  height: 32px;
  float: right;
  margin-top: -30px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--t2);
  font-size: 14px;
  cursor: pointer;
}
.pycp:hover {
  border-color: var(--p);
  color: var(--p);
}
.pync {
  font-size: 11px;
  color: var(--t2);
  font-weight: 500;
}
.pyna {
  font-size: 14px;
  color: var(--tx);
  font-weight: 700;
  margin-top: 3px;
}

/* ============ CONTACT ============ */
.ctw {
  max-width: 1100px;
  margin: 0 auto;
  padding: 2rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
}
@media (max-width: 780px) {
  .ctw {
    grid-template-columns: 1fr;
  }
}
.ctc {
  background: #fff;
  border-radius: var(--rl);
  border: 1px solid var(--bd);
  padding: 1.5rem 1.75rem;
}
.ctci {
  width: 42px;
  height: 42px;
  background: var(--pl);
  color: var(--pd);
  border-radius: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 19px;
  margin-bottom: 0.75rem;
}
.ctct {
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--tx);
  margin-bottom: 0.5rem;
}
.ctcd {
  font-size: 13px;
  color: var(--t2);
  line-height: 1.7;
}
.ctcd strong {
  color: var(--tx);
  font-weight: 700;
}

/* ============ FOOTER ============ */
.ft {
  background: var(--ft-bg, #064e3b);
  color: rgba(255, 255, 255, 0.7);
  padding: 3rem 2rem 1.5rem;
}
.ftg {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 2rem;
  margin-bottom: 2rem;
}
@media (max-width: 768px) {
  .ftg {
    grid-template-columns: 1fr 1fr;
  }
}
.ftb {
  font-size: 19px;
  font-weight: 800;
  color: #fff;
  margin-bottom: 0.75rem;
  display: flex;
  align-items: center;
  gap: 8px;
}
.ftb .bi {
  width: 32px;
  height: 32px;
  background: linear-gradient(135deg, var(--p), var(--pd));
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
}
.ftc h4 {
  color: #fff;
  font-size: 12.5px;
  font-weight: 700;
  margin-bottom: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.ftc p,
.ftc li {
  font-size: 12px;
  line-height: 1.8;
}
.ftc a:hover {
  color: var(--p);
}
.fts {
  display: flex;
  gap: 7px;
  margin-top: 1rem;
}
.fts a {
  width: 34px;
  height: 34px;
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 15px;
}
.fts a:hover {
  background: var(--p);
  transform: translateY(-2px);
}
.fts a { transition: transform .2s, filter .2s; }
.fts a svg { width: 21px; height: 21px; display: block; }
.fts a[data-social-brand="facebook"] { background: #1877f2; color: #fff; }
.fts a[data-social-brand="youtube"] { background: #fff; color: #ff0000; }
.fts a[data-social-brand="tiktok"] { background: #000; color: #fff; }
.fts a[data-social-brand="instagram"] { background: radial-gradient(circle at 30% 110%, #ffdc80, #fcaf45 20%, #f77737 35%, #e1306c 55%, #c13584 70%, #833ab4 90%); color: #fff; }
.fts a[data-social-brand]:hover { filter: brightness(1.15); transform: translateY(-2px); }
.fts a:focus-visible { outline: 2px solid #1970c9; outline-offset: 3px; }

#pg-contact {
  --contact-navy: #062e56;
  --contact-soft: #f3f7fd;
  --contact-border: #dce5f0;
  max-width: 904px;
  margin: 0 auto;
  padding: 26px 24px 64px;
  color: var(--contact-navy);
}
#pg-contact .ph { background: none; border: 0; padding: 0; }
#pg-contact .ph::before, #pg-contact .ph::after { display: none; }
#pg-contact .phw { padding: 0; margin: 0; }
#pg-contact .phw > div { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 12px; }
#pg-contact .pt { font-size: 28px; font-weight: 600; color: var(--contact-navy); }
#pg-contact .pts { color: #647d9e; font-size: 16px; }
#pg-contact .contact-breadcrumb { display: flex; gap: 10px; margin: 8px 0 24px; font-size: 11px; color: #64748b; }
#pg-contact .contact-breadcrumb [aria-current] { color: #064b97; }
#pg-contact .contact-breadcrumb a:hover { text-decoration: underline; }
#pg-contact .ctw { display: grid; grid-template-columns: 220px minmax(0, 1fr); align-items: start; gap: 20px; padding: 0; margin: 0; }
#pg-contact .contact-sidebar { min-width: 0; }
#pg-contact .ctg { grid-template-columns: minmax(0, 1fr); gap: 14px; }
#pg-contact .ctc,
#pg-contact .contact-message { border: 1px solid var(--contact-border); border-radius: 4px; overflow: hidden; box-shadow: 0 1px 4px rgba(6,46,86,.06); background: #fff; }
#pg-contact .ctc { padding: 0 0 11px; text-align: left; }
#pg-contact .cti { display: none; }
#pg-contact .ctt { background: var(--contact-soft); padding: 9px 12px; margin: 0 0 8px; font-size: 13px; font-weight: 700; }
#pg-contact .ctv { padding: 0 12px; font-size: 12px; line-height: 1.9; color: var(--contact-navy); overflow-wrap: anywhere; }
#pg-contact .fts { flex-wrap: wrap; }
#pg-contact .contact-message > h3 { background: #062e56; color: #fff; padding: 14px 22px; font-size: 14px; font-weight: 600; }
#pg-contact .contact-form { padding: 20px 22px 0; }
#pg-contact .contact-form-help { font-size: 12px; line-height: 1.8; margin-bottom: 16px; overflow-wrap: anywhere; }
#pg-contact .contact-submit:disabled { opacity: .6; cursor: wait; }
#pg-contact .fd { margin-bottom: 16px; }
#pg-contact .fd label { color: var(--contact-navy); font-size: 12px; }
#pg-contact .fd input,
#pg-contact .fd textarea { width: 100%; min-width: 0; background: #fff; color: var(--contact-navy); border: 1px solid var(--contact-border); border-radius: 3px; font-size: 13px; padding: 10px 12px; }
#pg-contact .fd textarea { display: block; resize: vertical; }
#pg-contact .fd input:focus,
#pg-contact .fd textarea:focus { outline: none; border-color: #1970c9; box-shadow: 0 0 0 3px rgba(25,112,201,.12); }
#pg-contact .contact-form-footer { margin: 20px -22px 0; padding: 12px 22px; background: var(--contact-soft); border-top: 1px solid var(--contact-border); display: flex; justify-content: flex-end; }
#pg-contact .contact-submit { border: 1px solid #062e56; background: #062e56; color: #fff; border-radius: 3px; padding: 8px 22px; font-size: 12px; font-weight: 600; }
#pg-contact .contact-submit:hover { background: #08467f; }
#pg-contact .contact-submit:focus-visible,
#pg-contact .contact-breadcrumb a:focus-visible { outline: 2px solid #1970c9; outline-offset: 3px; }
body.dark #pg-contact { --contact-navy: #dbeafe; --contact-soft: #17283e; --contact-border: #334155; }
body.dark #pg-contact .ctc,
body.dark #pg-contact .contact-message,
body.dark #pg-contact .fd input,
body.dark #pg-contact .fd textarea { background: #1e293b; }
body.dark #pg-contact .pts,
body.dark #pg-contact .contact-breadcrumb { color: #a6b8cf; }
body.dark #pg-contact .contact-breadcrumb [aria-current] { color: #93c5fd; }
@media (max-width: 640px) {
  #pg-contact { padding: 22px 16px 40px; }
  #pg-contact .pt { font-size: 24px; }
  #pg-contact .pts { font-size: 14px; }
  #pg-contact .ctw { grid-template-columns: minmax(0, 1fr); }
  #pg-contact .contact-message { grid-row: 1; }
}

.fbm {
  max-width: 1280px;
  margin: 0 auto;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding-top: 1.25rem;
  text-align: center;
  font-size: 11.5px;
}

/* ============ TOAST ============ */
.ts {
  position: fixed;
  bottom: 24px;
  right: 24px;
  background: #0f172a;
  color: #fff;
  padding: 11px 18px;
  border-radius: 10px;
  font-size: 12.5px;
  z-index: 9999;
  opacity: 0;
  transform: translateY(15px);
  transition: all 0.3s;
  pointer-events: none;
  display: flex;
  align-items: center;
  gap: 7px;
  box-shadow: var(--shl);
  max-width: 340px;
}
.ts.on {
  opacity: 1;
  transform: translateY(0);
}
.ts.sc {
  background: var(--ok);
}
.ts.er {
  background: var(--er);
}
.ts.wn {
  background: var(--wn);
}

/* ============ ADMIN ============ */
.adl {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  background: linear-gradient(135deg, #0f172a, #1e293b);
}
.adlc {
  background: #fff;
  border-radius: 18px;
  padding: 2.25rem;
  width: 100%;
  max-width: 400px;
  box-shadow: 0 25px 60px rgba(0, 0, 0, 0.3);
  position: relative;
  overflow: hidden;
}
.adlc::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--ac), var(--p));
}
.adlk {
  width: 62px;
  height: 62px;
  background: linear-gradient(135deg, #0f172a, #1e293b);
  border-radius: 15px;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.7rem;
  margin: 0 auto 1.25rem;
}

/* ============ ADMIN DASHBOARD ============ */
.ash {
  display: grid;
  grid-template-columns: 230px 1fr;
  min-height: 100vh;
}
@media (max-width: 780px) {
  .ash {
    grid-template-columns: 1fr;
  }
  .asd {
    display: none;
  }
}
.asd {
  background: linear-gradient(180deg, #0f172a, #0a0f1f);
  color: #fff;
  padding: 1rem 0;
  overflow-y: auto;
}
.asdh {
  font-size: 9.5px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.4);
  padding: 14px 1.1rem 6px;
  font-weight: 700;
}
.asi {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 1.1rem;
  font-size: 12.5px;
  color: rgba(255, 255, 255, 0.75);
  transition: all 0.15s;
  border-left: 3px solid transparent;
  font-weight: 500;
  cursor: pointer;
  border: none;
  background: transparent;
  width: 100%;
  text-align: left;
}
.asi:hover {
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
}
.asi.act {
  background: rgba(var(--p-rgb), 0.12);
  color: var(--p);
  border-left-color: var(--p);
}
.asc {
  background: var(--bg);
  padding: 1.5rem;
  overflow-y: auto;
}

.stg {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 0.9rem;
  margin-bottom: 1.25rem;
}
.stc {
  background: #fff;
  border-radius: 11px;
  padding: 1.1rem;
  border: 1px solid var(--bd);
  transition: all 0.2s;
}
.stc:hover {
  box-shadow: var(--sh);
  border-color: var(--p);
}
.stc .ico {
  width: 38px;
  height: 38px;
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  margin-bottom: 0.6rem;
}
.stc.bu .ico {
  background: #dbeafe;
  color: #1e40af;
}
.stc.cy .ico {
  background: var(--pl);
  color: var(--pdd);
}
.stc.pu .ico {
  background: #ede9fe;
  color: #6d28d9;
}
.stc.gn .ico {
  background: #d1fae5;
  color: #065f46;
}
.stc.am .ico {
  background: #fef3c7;
  color: #92400e;
}
.stc.rd .ico {
  background: #fee2e2;
  color: #991b1b;
}
.stc .v {
  font-size: 1.55rem;
  font-weight: 800;
}
.stc .l {
  font-size: 11.5px;
  color: var(--t2);
  margin-top: 2px;
}

.dt {
  background: #fff;
  border-radius: 11px;
  border: 1px solid var(--bd);
  overflow: hidden;
  margin-bottom: 1.25rem;
}
.dth {
  padding: 1rem 1.1rem;
  border-bottom: 1px solid var(--bd);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
}
.dth h3 {
  font-size: 13px;
  font-weight: 700;
}
.dtf {
  display: flex;
  gap: 6px;
}
.dtf input,
.dtf select {
  padding: 6px 11px;
  border: 1px solid var(--bd);
  border-radius: 7px;
  font-size: 11.5px;
}
thead {
  background: var(--bg);
}
th {
  padding: 10px 14px;
  text-align: left;
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--t2);
  border-bottom: 1px solid var(--bd);
}
td {
  padding: 10px 14px;
  border-bottom: 1px solid var(--bd);
  font-size: 12.5px;
}
tbody tr:last-child td {
  border-bottom: none;
}
tbody tr:hover {
  background: var(--bg);
}

.tg2 {
  padding: 3px 9px;
  border-radius: 9px;
  font-size: 9.5px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 3px;
}
.tg2.vp {
  background: #ede9fe;
  color: #6d28d9;
}
.tg2.fr {
  background: var(--pl);
  color: var(--pdd);
}
.tg2.ac {
  background: #d1fae5;
  color: #065f46;
}
.tg2.pd {
  background: #fef3c7;
  color: #92400e;
}
.tg2.bn {
  background: #fee2e2;
  color: #991b1b;
}

/* ============ MOBILE ============ */
@media (max-width: 780px) {
  .menu {
    display: none;
  }
  .sb {
    display: none;
  }
  .hr h1 {
    font-size: 2rem;
  }
  .pt {
    font-size: 1.5rem;
  }
}

/* ============================================
   ADDITIONAL CLASSES (for index.html)
   ============================================ */

/* Hero supplementary */
.gr {
  background: linear-gradient(135deg, #fde047, #fbbf24);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: #fde047;
}
.hrc {
  display: flex;
  flex-direction: column;
}
.hrv {
  position: relative;
  height: 380px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hrc-circle {
  width: 260px;
  height: 260px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(255, 255, 255, 0.2),
    transparent 70%
  );
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 5.5rem;
}
.hrb {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 2rem;
}
.hrs {
  display: flex;
  gap: 1.75rem;
  flex-wrap: wrap;
}
.hsi .n {
  font-size: 1.6rem;
  font-weight: 800;
  color: #fde047;
}
.hsi .l {
  font-size: 11.5px;
  opacity: 0.9;
}
.hvc .ic {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #fff;
  font-size: 15px;
}

/* Buttons (alt names) */
.bp {
  background: #fff;
  color: var(--pd);
  border: none;
  padding: 12px 26px;
  border-radius: 28px;
  font-size: 13.5px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.bp:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}
.bo {
  background: transparent;
  color: #fff;
  border: 2px solid rgba(255, 255, 255, 0.4);
  padding: 12px 26px;
  border-radius: 28px;
  font-size: 13.5px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.bo:hover {
  background: rgba(255, 255, 255, 0.1);
}

/* Stats bar (alt names) */
.sb2w {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 1rem;
}
.sbi {
  text-align: center;
}
.sbi .n {
  font-size: 1.7rem;
  font-weight: 800;
  color: var(--p);
  background: linear-gradient(135deg, var(--p), var(--pd));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.sbi .l {
  font-size: 11.5px;
  color: var(--t2);
  margin-top: 2px;
  font-weight: 500;
}

/* Section (alt names) */
.sec {
  max-width: 1280px;
  margin: 0 auto;
  padding: 2.5rem 2rem;
}
.sech {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
  gap: 1rem;
  flex-wrap: wrap;
}
.sech h2 {
  font-size: 1.55rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  gap: 8px;
}
.sech .sub {
  font-size: 12.5px;
  color: var(--t2);
  margin-top: 3px;
  font-weight: 400;
}
.sl {
  font-size: 13px;
  color: var(--p);
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  cursor: pointer;
}

/* Grids */
.cgrid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1.1rem;
}
.empty {
  grid-column: 1/-1;
  text-align: center;
  padding: 3rem;
  color: var(--mu);
  font-size: 13px;
}

/* Testimonials */
.tgrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.25rem;
  max-width: 1100px;
  margin: 0 auto;
}
.tcrd {
  background: #fff;
  border-radius: var(--rl);
  padding: 1.5rem;
  border: 1px solid var(--bd);
  position: relative;
  box-shadow: var(--sh);
}
.tcrd::before {
  content: '"';
  position: absolute;
  top: -10px;
  left: 18px;
  font-size: 4rem;
  color: var(--ac);
  line-height: 1;
  font-family: Georgia, serif;
  opacity: 0.4;
}
.tcrd p {
  font-size: 13.5px;
  color: var(--tx);
  margin-bottom: 1rem;
  line-height: 1.6;
  font-style: italic;
  position: relative;
  z-index: 1;
}
.tu {
  display: flex;
  align-items: center;
  gap: 10px;
}
.tav {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--vp), #a855f7);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 700;
  font-size: 13px;
}
.tn {
  font-size: 13px;
  font-weight: 700;
}
.tr {
  font-size: 11px;
  color: var(--t2);
}

/* Pricing */
.prgrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.5rem;
  max-width: 1000px;
  margin: 2rem auto 0;
}
.prc {
  background: #fff;
  border: 2px solid var(--bd);
  border-radius: 18px;
  padding: 2rem;
  position: relative;
  transition: all 0.25s;
}
.prc:hover {
  transform: translateY(-4px);
  box-shadow: var(--shl);
}
.prc.pop {
  border-color: var(--vp);
  transform: scale(1.04);
  box-shadow: 0 15px 50px rgba(124, 58, 237, 0.18);
}
.prpop {
  position: absolute;
  top: -14px;
  left: 50%;
  transform: translateX(-50%);
  background: linear-gradient(135deg, var(--vp), #a855f7);
  color: #fff;
  padding: 5px 18px;
  border-radius: 24px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.prn {
  font-size: 14px;
  font-weight: 700;
  color: var(--t2);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.75rem;
}
.pra {
  font-size: 2.6rem;
  font-weight: 900;
  color: var(--tx);
  line-height: 1;
}
.pra .ccy {
  font-size: 14px;
  font-weight: 500;
  color: var(--t2);
}
.prp {
  font-size: 12px;
  color: var(--mu);
  margin-top: 4px;
  margin-bottom: 1.5rem;
}
.prl {
  list-style: none;
  margin-bottom: 1.5rem;
  padding: 0;
}
.prl li {
  padding: 7px 0;
  font-size: 13px;
  color: var(--t2);
}
.prl li.no {
  color: var(--mu);
}
.prbtn {
  width: 100%;
  padding: 12px;
  border: none;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
}
.prbtn.bs {
  background: linear-gradient(135deg, var(--p), var(--pd));
  color: #fff;
}
.prbtn.vip {
  background: linear-gradient(135deg, var(--vp), #a855f7);
  color: #fff;
}
.prbtn.acc {
  background: linear-gradient(135deg, var(--ac), #dc2626);
  color: #fff;
}
.prbtn:hover {
  transform: translateY(-1px);
  box-shadow: var(--shl);
}

/* Payment cards (extended) */
.pyg {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 1.25rem;
  max-width: 1100px;
  margin: 0 auto 2rem;
}
@media (max-width: 900px) {
  .pyg {
    grid-template-columns: 1fr;
  }
}
.pyc {
  background: #fff;
  border-radius: var(--rl);
  border: 1px solid var(--bd);
  padding: 1.5rem;
  text-align: center;
  transition: all 0.2s;
}
.pyc:hover {
  box-shadow: var(--shl);
  border-color: var(--pl);
}
.pyic {
  width: 60px;
  height: 60px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 900;
  font-size: 14px;
  margin: 0 auto 1rem;
}
.pyic.bcel {
  background: linear-gradient(135deg, #7c3aed, #5b21b6);
}
.pyic.ldb {
  background: linear-gradient(135deg, #10b981, #047857);
}
.pyic.apb {
  background: linear-gradient(135deg, var(--pd), var(--pdd));
}
.pyt {
  font-size: 15px;
  font-weight: 800;
  margin-bottom: 8px;
}
.pyacc {
  font-size: 12px;
  color: var(--t2);
  margin-bottom: 8px;
}
.pyno {
  font-size: 20px;
  font-weight: 800;
  letter-spacing: 0.05em;
  font-family: "Consolas", monospace;
  color: var(--tx);
  margin-bottom: 12px;
}
.pycp {
  background: var(--pl);
  color: var(--pd);
  border: none;
  padding: 8px 14px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
}
.pycp:hover {
  background: var(--p);
  color: #fff;
}

/* Contact */
.ctw {
  max-width: 1280px;
  margin: 0 auto;
  padding: 2rem;
}
.ctg {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.25rem;
}
.ctc {
  background: #fff;
  border: 1px solid var(--bd);
  border-radius: var(--rl);
  padding: 1.5rem;
  text-align: center;
  transition: all 0.2s;
}
.ctc:hover {
  box-shadow: var(--shl);
  border-color: var(--pl);
}
.cti {
  width: 50px;
  height: 50px;
  background: var(--pl);
  color: var(--pd);
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  margin: 0 auto 0.75rem;
}
.ctt {
  font-size: 15px;
  font-weight: 700;
  margin-bottom: 0.5rem;
}
.ctv {
  font-size: 12.5px;
  color: var(--t2);
  line-height: 1.7;
}

/* VIP feat */
.vfeat {
  padding: 1.5rem;
  border: 1.5px solid #e9d5ff;
  border-radius: 14px;
  text-align: center;
  background: linear-gradient(180deg, #faf5ff, #fff);
  transition: all 0.2s;
}
.vfeat:hover {
  border-color: var(--vp);
  transform: translateY(-3px);
  box-shadow: 0 10px 30px rgba(124, 58, 237, 0.15);
}
.vfi {
  font-size: 2.4rem;
  margin-bottom: 0.75rem;
}
.vfeat h3 {
  font-size: 15px;
  font-weight: 700;
  margin-bottom: 0.5rem;
}
.vfeat p {
  font-size: 13px;
  color: var(--t2);
  line-height: 1.5;
  margin: 0;
}

/* Auth (alt names) */
.ax {
  min-height: calc(100vh - 64px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  background: linear-gradient(135deg, var(--pl2), #dbeafe);
}
.axw {
  background: #fff;
  border-radius: var(--rl);
  max-width: 980px;
  width: 100%;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr 1fr;
  box-shadow: var(--shl);
}
@media (max-width: 780px) {
  .axw {
    grid-template-columns: 1fr;
    max-width: 460px;
  }
  .axs {
    display: none;
  }
}
.axs {
  background: linear-gradient(135deg, var(--p), var(--pd));
  color: #fff;
  padding: 2.5rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  overflow: hidden;
}
.axs::before {
  content: "";
  position: absolute;
  top: -30%;
  right: -30%;
  width: 380px;
  height: 380px;
  background: radial-gradient(circle, rgba(251, 191, 36, 0.3), transparent 70%);
  border-radius: 50%;
}
.axs ul {
  list-style: none;
  padding: 0;
  position: relative;
  z-index: 1;
}
.axs li {
  padding: 5px 0;
  font-size: 12.5px;
}
.axf {
  padding: 2.5rem 2.25rem;
}
.axf h2 {
  font-size: 1.5rem;
  font-weight: 800;
  margin-bottom: 0.25rem;
}
.axsub {
  font-size: 12.5px;
  color: var(--t2);
  margin-bottom: 1.5rem;
}
.ckr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 11.5px;
  color: var(--t2);
  margin: 0.75rem 0;
}
.ckr label {
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
}
.ckr a {
  color: var(--p);
  font-weight: 600;
}
.auf {
  text-align: center;
  margin-top: 1.1rem;
  font-size: 12.5px;
  color: var(--t2);
}
.auf a {
  color: var(--p);
  font-weight: 700;
  cursor: pointer;
}
.frow {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

/* Form data fields (override) */
.fd textarea {
  width: 100%;
  padding: 10px 13px;
  border: 1.5px solid var(--bd);
  border-radius: 9px;
  font-size: 13px;
  color: var(--tx);
  background: #fff;
  font-family: inherit;
  resize: vertical;
}
.fd textarea:focus {
  outline: none;
  border-color: var(--p);
  box-shadow: 0 0 0 3px rgba(var(--p-rgb), 0.1);
}

/* Footer (alt names) */
.ftg {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 2rem;
  margin-bottom: 2rem;
}
@media (max-width: 768px) {
  .ftg {
    grid-template-columns: 1fr 1fr;
  }
}
.ftc h4 {
  color: #fff;
  font-size: 12.5px;
  font-weight: 700;
  margin-bottom: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.ftc p,
.ftc li {
  font-size: 12px;
  line-height: 1.8;
}
.ftc ul {
  list-style: none;
  padding: 0;
}
.ftc a {
  color: rgba(255, 255, 255, 0.7);
  cursor: pointer;
}
.ftc a:hover {
  color: var(--p);
}
.ftb {
  font-size: 19px;
  font-weight: 800;
  color: #fff;
  margin-bottom: 0.75rem;
  display: flex;
  align-items: center;
  gap: 8px;
}
.ftbb {
  max-width: 1280px;
  margin: 0 auto;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding-top: 1.25rem;
  text-align: center;
  font-size: 11.5px;
}
.ftbb a {
  color: var(--mu);
}

/* Toolbar select (alt) */
.tbsel {
  padding: 8px 14px;
  border: 1px solid var(--bd);
  border-radius: 22px;
  font-size: 12.5px;
  background: var(--bg);
  color: var(--tx);
  cursor: pointer;
  font-family: inherit;
  min-width: 180px;
}
.tbsel:focus {
  outline: none;
  border-color: var(--p);
  background: #fff;
}

/* Sidebar count alt */
.sicn {
  margin-left: auto;
  background: var(--bg);
  color: var(--t2);
  font-size: 10.5px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 10px;
  min-width: 26px;
  text-align: center;
}
.si.act .sicn {
  background: var(--p);
  color: #fff;
}
.si .sic {
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  flex-shrink: 0;
}

/* ============================================
   FIX: Search icon size in toolbars
   ============================================ */
.tbs {
  position: relative;
}
.tbs svg {
  position: absolute;
  left: 13px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--mu);
  width: 14px;
  height: 14px;
  pointer-events: none;
}
.tbs input {
  padding-left: 36px !important;
}

/* Also fix nav search icon */
.nav .sb svg {
  position: absolute;
  left: 13px;
  top: 50%;
  transform: translateY(-50%);
  width: 14px;
  height: 14px;
  color: var(--mu);
  pointer-events: none;
}

/* ============================================
   COURSE DETAIL PAGE
   ============================================ */
.cd-wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 1.5rem 2rem;
  overflow-wrap: anywhere;
}
.cd-bc {
  font-size: 12px;
  color: var(--mu);
  margin-bottom: 1.25rem;
}
.cd-bc a {
  color: var(--p);
  cursor: pointer;
}
.cd-bc a:hover {
  text-decoration: underline;
}
.cd-layout {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 2rem;
  align-items: start;
}
@media (max-width: 900px) {
  .cd-layout {
    grid-template-columns: 1fr;
  }
}

/* Left content */
.cd-main {
  min-width: 0;
}
.cd-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 1rem;
}
.cd-tag {
  padding: 3px 10px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.03em;
}
.cd-tag.AI {
  background: #ede9fe;
  color: #6d28d9;
}
.cd-tag.HIGHLIGHT {
  background: #fef3c7;
  color: #92400e;
}
.cd-tag.VIDEO {
  background: var(--pl);
  color: var(--pdd);
}
.cd-tag.NEW {
  background: #d1fae5;
  color: #065f46;
}
.cd-tag.HOT {
  background: #fee2e2;
  color: #991b1b;
}
.cd-tag.BESTSELLER {
  background: #fce7f3;
  color: #be185d;
}
.cd-title {
  font-size: 2rem;
  font-weight: 800;
  line-height: 1.25;
  margin-bottom: 1rem;
  color: var(--tx);
}
.cd-shortdesc {
  font-size: 15px;
  color: var(--t2);
  line-height: 1.7;
  margin-bottom: 1rem;
  white-space: pre-wrap;
}
.cd-fulldesc {
  font-size: 14px;
  color: var(--t2);
  line-height: 1.8;
  margin-bottom: 1.25rem;
  white-space: pre-wrap;
}
.cd-fulldesc p {
  margin-bottom: 0.75rem;
}
.cd-fulldesc strong,
.cd-fulldesc b {
  color: var(--tx);
}
.cd-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  padding: 1rem 0;
  border-top: 1px solid var(--bd);
  border-bottom: 1px solid var(--bd);
  font-size: 12.5px;
  color: var(--t2);
  margin-bottom: 1.5rem;
}
.cd-mi {
  display: flex;
  align-items: center;
  gap: 6px;
}
.cd-mi .ic {
  font-size: 14px;
}

/* Teacher card */
.cd-teacher {
  background: var(--bg);
  padding: 1.25rem;
  border-radius: 14px;
  margin-bottom: 1.5rem;
}
.cd-tlabel {
  font-size: 11px;
  font-weight: 700;
  color: var(--t2);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.5rem;
}
.cd-trow {
  display: flex;
  align-items: center;
  gap: 12px;
}
.cd-tav {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--p), var(--pd));
  color: #fff;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
}
.cd-tname {
  font-weight: 700;
  font-size: 15px;
}
.cd-trole {
  font-size: 12px;
  color: var(--t2);
}

/* Sections */
.cd-sec {
  margin-bottom: 2rem;
}
.cd-h {
  font-size: 1.25rem;
  font-weight: 800;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--pl);
}
.cd-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
@media (max-width: 600px) {
  .cd-grid {
    grid-template-columns: 1fr;
  }
}
.cd-grid-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 13.5px;
  color: var(--t2);
  padding: 8px 0;
}
.cd-grid-item::before {
  content: "✓";
  color: var(--ok);
  font-weight: 800;
  flex-shrink: 0;
  margin-top: 1px;
}
.cd-list {
  list-style: none;
  padding: 0;
}
.cd-list li {
  font-size: 13.5px;
  color: var(--t2);
  padding: 6px 0 6px 26px;
  position: relative;
}
.cd-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 6px;
  color: var(--ok);
  font-weight: 800;
}

/* RIGHT: Sticky card */
.cd-side {
  position: sticky;
  top: 80px;
}
@media (max-width: 900px) {
  .cd-side {
    position: static;
  }
}
.cd-card {
  background: #fff;
  border-radius: 16px;
  border: 1px solid var(--bd);
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
}
.cd-cover {
  aspect-ratio: 16 / 10;
  background: linear-gradient(135deg, var(--p), var(--pd));
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
.cd-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cd-cover-emoji {
  font-size: 5rem;
}
.cd-pricing {
  padding: 1.25rem;
}
.cd-price {
  font-size: 2rem;
  font-weight: 900;
  color: var(--tx);
  margin-bottom: 1rem;
}
.cd-price .cur {
  font-size: 1.2rem;
  color: var(--t2);
  margin-right: 4px;
  vertical-align: top;
  line-height: 2;
}
.cd-oldprice {
  font-size: 1rem;
  color: var(--mu);
  text-decoration: line-through;
  font-weight: 500;
  margin-left: 10px;
}
.cd-btn {
  width: 100%;
  padding: 12px;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  margin-bottom: 8px;
  border: none;
  transition: all 0.2s;
}
.cd-btn.primary {
  background: var(--p);
  color: #fff;
}
.cd-btn.primary:hover {
  background: var(--pd);
  transform: translateY(-1px);
}
.cd-btn.outline {
  background: #fff;
  color: var(--pd);
  border: 2px solid var(--p);
}
.cd-btn.outline:hover {
  background: var(--pl);
}
.cd-btn.ghost {
  background: transparent;
  color: var(--t2);
  border: 1px solid var(--bd);
  font-weight: 600;
}
.cd-btn.ghost:hover {
  background: var(--bg);
}
.cd-btn.ghost.act {
  color: var(--er);
  border-color: var(--er);
}
.cd-incl {
  padding: 1rem 1.25rem 1.25rem;
  border-top: 1px solid var(--bd);
}
.cd-icl {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 0;
  font-size: 12.5px;
  color: var(--t2);
}
.cd-icl .ic {
  color: var(--p);
  font-size: 14px;
  width: 18px;
}

/* ============================================
   DARK MODE SUPPORT
   ============================================ */
:root {
  --bg-page: #f8fafc;
  --bg-card: #ffffff;
  --bg-input: #ffffff;
  --txt-main: #0f172a;
  --txt-sub: #475569;
  --txt-muted: #94a3b8;
  --bd-color: #e2e8f0;
  --shadow-card: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
  --shadow-lg: 0 10px 30px rgba(0, 0, 0, 0.08);
}

body.dark {
  --bg: #0f172a;
  --bg-page: #0f172a;
  --bg-card: #1e293b;
  --bg-input: #1e293b;
  --tx: #f1f5f9;
  --t2: #cbd5e1;
  --txt-main: #f1f5f9;
  --txt-sub: #cbd5e1;
  --txt-muted: #94a3b8;
  --bd: #334155;
  --bd-color: #334155;
  --mu: #64748b;
  --shadow-card: 0 1px 3px rgba(0, 0, 0, 0.3);
  --shadow-lg: 0 10px 40px rgba(0, 0, 0, 0.5);
}

body.dark {
  background: var(--bg-page);
  color: var(--txt-main);
}
body.dark .nav {
  background: rgba(15, 23, 42, 0.95) !important;
  border-bottom: 1px solid var(--bd-color);
}
body.dark .nav .brand {
  color: var(--txt-main);
}
body.dark .mi {
  color: var(--txt-sub);
}
body.dark .mi:hover {
  background: #334155;
  color: var(--p);
}
body.dark .sb input,
body.dark .tbs input,
body.dark .tbsel {
  background: var(--bg-input);
  color: var(--txt-main);
  border-color: var(--bd-color);
}
body.dark .cc,
body.dark .bk,
body.dark .ctc,
body.dark .pyc,
body.dark .prc,
body.dark .vfeat,
body.dark .pn,
body.dark .dt,
body.dark .sc,
body.dark .tcrd,
body.dark .axw,
body.dark .cd-card,
body.dark .bk-st .bk-cir {
  background: var(--bg-card);
  color: var(--txt-main);
}
body.dark .cby,
body.dark .bkbody {
  color: var(--txt-main);
}
body.dark .ct,
body.dark .cnm,
body.dark .crl {
  color: var(--txt-sub);
}
body.dark .sdc {
  background: var(--bg-card);
}
body.dark .sdh {
  background: var(--p);
}
body.dark .si {
  color: var(--txt-sub);
}
body.dark .si:hover {
  background: #334155;
}
body.dark .si.act {
  background: var(--pl);
  color: var(--pd);
}
body.dark .fd input,
body.dark .fd select,
body.dark .fd textarea {
  background: var(--bg-input);
  color: var(--txt-main);
  border-color: var(--bd-color);
}
body.dark .ph {
  background: linear-gradient(135deg, #1e293b, #0f172a);
  border-bottom: 1px solid var(--bd-color);
}
body.dark .pt,
body.dark .pts {
  color: var(--txt-main);
}
body.dark .empty,
body.dark .bk-empty {
  color: var(--txt-muted);
}
body.dark .ftbb {
  border-color: rgba(255, 255, 255, 0.15);
}
body.dark .sech h2,
body.dark .cd-title,
body.dark .cd-h,
body.dark .bk-h h1 {
  color: var(--txt-main);
}
body.dark .cd-fulldesc,
body.dark .cd-shortdesc {
  color: var(--txt-sub);
}

/* Icon buttons in nav (theme, cart) */
.icon-btn {
  background: transparent;
  border: 1px solid var(--bd);
  width: 38px;
  height: 38px;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 17px;
  transition: all 0.2s;
  position: relative;
  flex-shrink: 0;
  color: var(--tx);
}
.icon-btn:hover {
  background: var(--pl);
  border-color: var(--p);
  transform: translateY(-1px);
}
body.dark .icon-btn {
  color: var(--txt-main);
  border-color: var(--bd-color);
}
body.dark .icon-btn:hover {
  background: #334155;
}
.cart-count {
  position: absolute;
  top: -4px;
  right: -4px;
  background: var(--er);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  min-width: 18px;
  height: 18px;
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 5px;
}

/* ============================================
   BOOKING WIZARD (Private Page)
   ============================================ */
.bk-wrap {
  max-width: 980px;
  margin: 0 auto;
  padding: 2rem;
}
.bk-h {
  text-align: center;
  margin-bottom: 2rem;
}
.bk-h h1 {
  font-size: 1.8rem;
  font-weight: 800;
  margin-bottom: 0.5rem;
}
.bk-h p {
  color: var(--t2);
  font-size: 14px;
}

.bk-steps {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 2rem;
  gap: 0;
}
.bk-st {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.bk-cir {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #e2e8f0;
  color: #94a3b8;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 14px;
  transition: all 0.25s;
  border: 2px solid transparent;
}
.bk-st.act .bk-cir {
  background: var(--p);
  color: #fff;
  box-shadow: 0 4px 12px rgba(var(--p-rgb), 0.4);
}
.bk-st.done .bk-cir {
  background: var(--ok);
  color: #fff;
}
.bk-st.done .bk-cir::before {
  content: "✓";
}
.bk-st.done .bk-cir {
  font-size: 0;
}
.bk-st.done .bk-cir::before {
  font-size: 16px;
}
.bk-stl {
  font-size: 11.5px;
  color: var(--t2);
  font-weight: 600;
}
.bk-st.act .bk-stl {
  color: var(--p);
}
.bk-stbar {
  flex: 1;
  height: 2px;
  background: #e2e8f0;
  margin: 0 -8px;
  margin-bottom: 18px;
  min-width: 30px;
}

@media (max-width: 700px) {
  .bk-stl {
    display: none;
  }
  .bk-stbar {
    min-width: 15px;
  }
  .bk-cir {
    width: 32px;
    height: 32px;
    font-size: 12px;
  }
}

.bk-body {
  background: var(--bg-card, #fff);
  border-radius: 16px;
  padding: 2rem;
  box-shadow: var(--shadow-card, 0 1px 3px rgba(0, 0, 0, 0.06));
  border: 1px solid var(--bd);
  min-height: 380px;
}
body.dark .bk-body {
  background: var(--bg-card);
  border-color: var(--bd-color);
}
.bk-pn {
  display: none;
  animation: fadeIn 0.25s;
}
.bk-pn.act {
  display: block;
}
.bk-h2 {
  font-size: 1.25rem;
  font-weight: 700;
  margin-bottom: 1.25rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--pl);
}

.bk-courses {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 12px;
}
.bk-course-card {
  background: #fff;
  border: 2px solid var(--bd);
  border-radius: 12px;
  padding: 14px;
  cursor: pointer;
  display: flex;
  gap: 10px;
  align-items: center;
  transition: all 0.2s;
}
body.dark .bk-course-card {
  background: var(--bg-card);
}
.bk-course-card:hover {
  border-color: var(--p);
  box-shadow: var(--shadow-lg, 0 8px 24px rgba(0, 0, 0, 0.08));
}
.bk-course-card.selected {
  border-color: var(--p);
  background: var(--pl);
}
body.dark .bk-course-card.selected {
  background: #164e63;
}
.bk-cci {
  width: 50px;
  height: 50px;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--p), var(--pd));
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  flex-shrink: 0;
  overflow: hidden;
}
.bk-cci img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.bk-cct {
  font-size: 13px;
  font-weight: 700;
  line-height: 1.3;
}
.bk-ccp {
  font-size: 11.5px;
  color: var(--t2);
  margin-top: 3px;
}
.bk-ccp .price {
  color: var(--p);
  font-weight: 700;
}
.bk-empty {
  grid-column: 1/-1;
  text-align: center;
  padding: 3rem;
  color: var(--mu);
  font-size: 13px;
}

.bk-dt {
  max-width: 500px;
  margin: 0 auto;
}
.bk-times {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.bk-tslot {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border: 1.5px solid var(--bd);
  border-radius: 10px;
  cursor: pointer;
  font-size: 13px;
  transition: all 0.2s;
}
.bk-tslot:hover {
  border-color: var(--p);
  background: var(--pl);
}
.bk-tslot:has(input:checked) {
  border-color: var(--p);
  background: var(--pl);
  color: var(--pd);
  font-weight: 600;
}
body.dark .bk-tslot:has(input:checked) {
  background: #164e63;
  color: #67e8f9;
}
.bk-tslot input {
  accent-color: var(--p);
}

.bk-sum {
  background: var(--bg, #f8fafc);
  border-radius: 12px;
  padding: 1.5rem;
  max-width: 600px;
  margin: 0 auto;
}
body.dark .bk-sum {
  background: #0f172a;
}
.bk-sum-row {
  display: flex;
  justify-content: space-between;
  padding: 10px 0;
  border-bottom: 1px dashed var(--bd);
  font-size: 13.5px;
}
.bk-sum-row:last-child {
  border-bottom: none;
}
.bk-sum-row .lbl {
  color: var(--t2);
  font-weight: 500;
}
.bk-sum-row .val {
  font-weight: 700;
  color: var(--tx);
  text-align: right;
}
.bk-sum-row.total {
  padding-top: 1rem;
  margin-top: 6px;
  border-top: 2px solid var(--p);
  font-size: 16px;
}
.bk-sum-row.total .val {
  color: var(--p);
  font-size: 18px;
}

.bk-pay {
  max-width: 600px;
  margin: 0 auto;
}
.bk-paytotal {
  text-align: center;
  padding: 1.5rem;
  background: linear-gradient(135deg, var(--p), var(--pd));
  color: #fff;
  border-radius: 14px;
  margin-bottom: 1.25rem;
}
.bk-paylbl {
  font-size: 12px;
  opacity: 0.85;
}
.bk-paynum {
  font-size: 2rem;
  font-weight: 800;
  margin-top: 4px;
}
.bk-paymsg {
  background: #fef3c7;
  color: #92400e;
  padding: 1rem;
  border-radius: 10px;
  font-size: 13px;
  line-height: 1.6;
  margin-bottom: 1rem;
  border-left: 4px solid #f59e0b;
}
body.dark .bk-paymsg {
  background: #422006;
  color: #fbbf24;
}
.bk-banks {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 1.25rem;
}
@media (max-width: 600px) {
  .bk-banks {
    grid-template-columns: 1fr;
  }
}
.bk-bank {
  background: var(--bg, #f8fafc);
  border: 1px solid var(--bd);
  border-radius: 10px;
  padding: 14px;
  display: flex;
  gap: 12px;
  align-items: center;
}
body.dark .bk-bank {
  background: #0f172a;
}
.bk-bn {
  width: 50px;
  height: 50px;
  border-radius: 12px;
  color: #fff;
  font-weight: 900;
  font-size: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.bk-bn.bcel {
  background: linear-gradient(135deg, #7c3aed, #5b21b6);
}
.bk-bn.ldb {
  background: linear-gradient(135deg, #10b981, #047857);
}

.bk-nav {
  display: flex;
  justify-content: space-between;
  padding-top: 1.25rem;
  gap: 10px;
}
.bk-nav .bn {
  padding: 10px 24px;
  font-size: 14px;
}
.bk-nav .bn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* ============================================
   CART PAGE
   ============================================ */
.cart-wrap {
  max-width: 980px;
  margin: 0 auto;
  padding: 2rem;
}
.cart-h1 {
  font-size: 1.8rem;
  font-weight: 800;
  margin-bottom: 1.5rem;
  text-align: center;
}
.cart-empty {
  text-align: center;
  padding: 4rem 2rem;
}
.cart-icon {
  font-size: 5rem;
  margin-bottom: 1rem;
  opacity: 0.5;
}
.cart-empty h3 {
  font-size: 1.4rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
}
.cart-empty p {
  color: var(--t2);
  margin-bottom: 1.5rem;
}
.cart-list {
  background: var(--bg-card, #fff);
  border-radius: 14px;
  border: 1px solid var(--bd);
  overflow: hidden;
}
.cart-row {
  display: flex;
  gap: 14px;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--bd);
  align-items: center;
}
.cart-row:last-child {
  border-bottom: none;
}
.cart-img {
  width: 80px;
  height: 60px;
  border-radius: 8px;
  background: linear-gradient(135deg, var(--p), var(--pd));
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  overflow: hidden;
  flex-shrink: 0;
}
.cart-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cart-info {
  flex: 1;
  min-width: 0;
}
.cart-info h4 {
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 4px;
}
.cart-info .by {
  font-size: 11.5px;
  color: var(--t2);
}
.cart-price {
  font-size: 16px;
  font-weight: 700;
  color: var(--p);
  white-space: nowrap;
}
.cart-rm {
  background: transparent;
  border: none;
  color: var(--er);
  cursor: pointer;
  font-size: 18px;
  padding: 6px 10px;
  border-radius: 6px;
}
.cart-rm:hover {
  background: #fee2e2;
}
.cart-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.25rem;
  background: var(--bg, #f8fafc);
}
body.dark .cart-foot {
  background: #0f172a;
}
.cart-total {
  font-size: 18px;
  font-weight: 800;
}
.cart-total .num {
  color: var(--p);
}

/* ============================================
   FLOATING CHAT WIDGET
   ============================================ */
#chatWidget {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 8500;
}
.chat-btn {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--p), var(--pd));
  color: #fff;
  border: none;
  font-size: 26px;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(var(--p-rgb), 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  transition: all 0.25s;
}
.chat-btn:hover {
  transform: scale(1.08) rotate(-5deg);
  box-shadow: 0 12px 32px rgba(var(--p-rgb), 0.65);
}
.chat-pulse {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: rgba(var(--p-rgb), 0.4);
  animation: chatPulse 2s infinite;
  pointer-events: none;
}
.chat-pulse.has-unread {
  inset: auto;
  top: -4px;
  right: -4px;
  display: flex;
  min-width: 22px;
  height: 22px;
  align-items: center;
  justify-content: center;
  padding: 0 5px;
  border: 2px solid #fff;
  border-radius: 999px;
  background: #ef4444;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  animation: none;
  z-index: 1;
}
@keyframes chatPulse {
  0% {
    transform: scale(1);
    opacity: 0.7;
  }
  100% {
    transform: scale(1.5);
    opacity: 0;
  }
}
.chat-box {
  position: absolute;
  bottom: 75px;
  right: 0;
  width: 340px;
  max-width: calc(100vw - 40px);
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  display: none;
  flex-direction: column;
  overflow: hidden;
  animation: chatSlide 0.25s;
}
@keyframes chatSlide {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.chat-box.open {
  display: flex;
}
body.dark .chat-box {
  background: var(--bg-card);
}
.chat-head {
  background: linear-gradient(135deg, var(--p), var(--pd));
  color: #fff;
  padding: 14px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.chat-head-info {
  display: flex;
  gap: 10px;
  align-items: center;
}
.chat-avt {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 16px;
}
.chat-name {
  font-weight: 700;
  font-size: 14px;
}
.chat-status {
  font-size: 10.5px;
  opacity: 0.9;
}
.chat-x {
  background: rgba(255, 255, 255, 0.15);
  border: none;
  color: #fff;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 14px;
}
.chat-x:hover {
  background: rgba(255, 255, 255, 0.25);
}
.chat-body {
  flex: 1;
  min-height: 240px;
  max-height: 340px;
  overflow-y: auto;
  padding: 14px;
  background: #f8fafc;
}
body.dark .chat-body {
  background: #0f172a;
}
.chat-msg {
  margin-bottom: 12px;
  max-width: 85%;
}
.chat-msg.bot {
  margin-right: auto;
}
.chat-msg.user {
  margin-left: auto;
  text-align: right;
}
.chat-bubble {
  padding: 10px 14px;
  border-radius: 16px;
  font-size: 13px;
  line-height: 1.5;
  display: inline-block;
  text-align: left;
}
.chat-msg.bot .chat-bubble {
  background: #fff;
  color: var(--tx);
  border-bottom-left-radius: 4px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}
body.dark .chat-msg.bot .chat-bubble {
  background: var(--bg-card);
  color: var(--txt-main);
}
.chat-msg.user .chat-bubble {
  background: var(--p);
  color: #fff;
  border-bottom-right-radius: 4px;
}
.chat-time {
  font-size: 10px;
  color: var(--mu);
  margin-top: 3px;
  padding: 0 6px;
}
.chat-quick {
  padding: 0 12px 8px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  background: #f8fafc;
}
body.dark .chat-quick {
  background: #0f172a;
}
.chat-quick button {
  background: var(--pl);
  color: var(--pd);
  border: 1px solid #67e8f9;
  padding: 5px 11px;
  border-radius: 14px;
  font-size: 11px;
  cursor: pointer;
  font-family: inherit;
}
.chat-quick button:hover {
  background: var(--p);
  color: #fff;
}
.chat-input {
  display: flex;
  padding: 10px 12px;
  gap: 6px;
  background: #fff;
  border-top: 1px solid var(--bd);
}
body.dark .chat-input {
  background: var(--bg-card);
  border-color: var(--bd-color);
}
.chat-input input {
  flex: 1;
  border: 1px solid var(--bd);
  padding: 8px 12px;
  border-radius: 18px;
  font-size: 12.5px;
  font-family: inherit;
  background: var(--bg-input, #fff);
  color: var(--tx);
}
.chat-input button {
  background: var(--p);
  color: #fff;
  border: none;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 14px;
}
.chat-foot {
  padding: 8px 12px;
  background: #f1f5f9;
  display: flex;
  justify-content: space-around;
  gap: 4px;
  font-size: 11px;
  border-top: 1px solid var(--bd);
}
body.dark .chat-foot {
  background: #0f172a;
  border-color: var(--bd-color);
}
.chat-foot a {
  color: var(--pd);
  text-decoration: none;
  padding: 4px 8px;
  border-radius: 4px;
}
.chat-foot a:hover {
  background: var(--pl);
}

@media (max-width: 480px) {
  .chat-box {
    width: calc(100vw - 24px);
    right: -10px;
  }
  #chatWidget {
    bottom: 16px;
    right: 16px;
  }
}

/* ============================================
   v20260629d — FINAL POLISH FIXES
   ============================================ */

/* ===== Sidebar (Categories) — Left-aligned, cleaner ===== */
.sd {
  position: sticky;
  top: 80px;
  height: fit-content;
}
.sdc {
  background: #fff;
  border-radius: 14px;
  border: 1px solid var(--bd);
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}
body.dark .sdc {
  background: var(--bg-card);
  border-color: var(--bd-color);
}
.sdh {
  background: linear-gradient(135deg, var(--p), var(--pd));
  color: #fff;
  padding: 14px 18px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.sdl {
  padding: 6px 0;
}

/* Sidebar items - LEFT aligned with icon → text → badge */
.si {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  padding: 9px 18px !important;
  cursor: pointer;
  font-size: 13.5px;
  color: var(--t2);
  transition: all 0.15s;
  border-left: 3px solid transparent;
  text-align: left !important;
  width: 100%;
}
.si:hover {
  background: var(--bg);
  color: var(--p);
}
.si.act {
  background: var(--pl);
  color: var(--pd);
  border-left-color: var(--p);
  font-weight: 600;
}
body.dark .si:hover {
  background: #1e293b;
}
body.dark .si.act {
  background: #164e63;
  color: #67e8f9;
}

/* Icon: fixed size container, contents centered inside */
.si .sic,
.si > svg,
.si > div:first-child {
  width: 22px !important;
  height: 22px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
  font-size: 14px;
}

/* Count badge on the far right */
.sicn {
  margin-left: auto !important;
  background: var(--bg);
  color: var(--t2);
  font-size: 10.5px;
  font-weight: 700;
  padding: 2px 9px;
  border-radius: 11px;
  min-width: 26px;
  text-align: center;
  flex-shrink: 0;
}
.si.act .sicn {
  background: var(--p);
  color: #fff;
}
body.dark .sicn {
  background: #1e293b;
  color: var(--txt-sub);
}

/* ===== Force chat widget to be visible (cache busters) ===== */
#chatWidget {
  position: fixed !important;
  bottom: 20px !important;
  right: 20px !important;
  z-index: 8500 !important;
}
#chatWidget .chat-btn {
  width: 60px !important;
  height: 60px !important;
  border-radius: 50% !important;
}
#chatWidget .chat-box:not(.open) {
  display: none !important;
}
#chatWidget .chat-box.open {
  display: flex !important;
}

/* ===== Make sure booking wizard sections respect display:none ===== */
#pg-private .bk-pn {
  display: none !important;
}
#pg-private .bk-pn.act {
  display: block !important;
}

/* ===== Better Lao font rendering ===== */
body,
button,
input,
select,
textarea {
  font-family: "Noto Sans Lao", "Segoe UI", "Tahoma", sans-serif !important;
  letter-spacing: 0;
}

/* ===== Modal — error/info dialog ===== */
.mdl-confirm {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.65);
  z-index: 9500;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  backdrop-filter: blur(4px);
  animation: fadeIn 0.2s;
}
.mdl-confirm-body {
  background: #fff;
  border-radius: 18px;
  padding: 2rem;
  max-width: 380px;
  width: 100%;
  text-align: center;
  box-shadow: 0 25px 60px rgba(0, 0, 0, 0.3);
  animation: slideUp 0.25s;
}
body.dark .mdl-confirm-body {
  background: var(--bg-card);
  color: var(--txt-main);
}
.mdl-confirm-icon {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  margin: 0 auto 1.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
}
.mdl-confirm-icon.err {
  background: #fee2e2;
  color: #dc2626;
}
.mdl-confirm-icon.ok {
  background: #d1fae5;
  color: #059669;
}
.mdl-confirm-icon.warn {
  background: #fef3c7;
  color: #d97706;
}
.mdl-confirm-title {
  font-size: 1.2rem;
  font-weight: 800;
  margin-bottom: 0.5rem;
}
.mdl-confirm-msg {
  font-size: 13.5px;
  color: var(--t2);
  line-height: 1.6;
  margin-bottom: 1.5rem;
}
.mdl-confirm-btn {
  width: 100%;
  padding: 12px;
  border: none;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  color: #fff;
  background: var(--p);
}
.mdl-confirm-btn.danger {
  background: var(--er);
}
.mdl-confirm-btn:hover {
  transform: translateY(-1px);
  box-shadow: var(--shl);
}

/* ===== Improved alignment for all card content ===== */
.cc .cby,
.bk .bkbody {
  text-align: left !important;
}
.cc .ct {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  line-clamp: 2;
  overflow: hidden;
  min-height: 2.6em;
}

/* ===== Force ALL text to be left-aligned by default in content ===== */
.mn,
.sd,
.ph,
.pyw,
.ctw,
.bk-wrap,
.cd-wrap,
.cart-wrap,
.ax {
  text-align: left;
}

/* ===== Fix bullet/icon alignment in lists ===== */
.cd-list,
.cd-grid,
.prl,
.axs ul,
.ftc ul,
.bk-times {
  text-align: left !important;
}

/* ============================================
   v3 — BEAUTIFUL CONFIRM MODAL (reusable)
   ============================================ */
.bx-modal {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.55);
  backdrop-filter: blur(6px);
  z-index: 9800;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  animation: fadeIn 0.2s;
}
.bx-modal.open {
  display: flex;
}
.bx-modal-card {
  background: #fff;
  border-radius: 20px;
  padding: 2rem 1.75rem 1.5rem;
  max-width: 420px;
  width: 100%;
  text-align: center;
  position: relative;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.4);
  animation: bxPop 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.bx-modal-preview .bx-modal-card {
  max-width: 1100px;
  max-height: calc(100vh - 2rem);
  max-height: calc(100dvh - 2rem);
  overflow-y: auto;
  padding: 1.5rem 1rem 1rem;
}
.bx-modal-preview .bx-modal-icon,
.bx-modal-preview .bx-modal-msg {
  display: none;
}
.bx-modal-preview .bx-modal-title {
  padding: 0 2rem;
}
.bx-modal-preview .bx-modal-tail iframe,
.bx-modal-preview .bx-modal-tail video {
  display: block;
  width: 100%;
  max-height: calc(100vh - 180px);
  max-height: calc(100dvh - 180px);
}
@keyframes bxPop {
  from {
    transform: scale(0.9);
    opacity: 0;
  }
  to {
    transform: scale(1);
    opacity: 1;
  }
}
body.dark .bx-modal-card {
  background: var(--bg-card);
  color: var(--txt-main);
}
.bx-modal-x {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 32px;
  height: 32px;
  background: transparent;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  color: var(--mu);
  font-size: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.bx-modal-x:hover {
  background: var(--bg);
  color: var(--tx);
}
body.dark .bx-modal-x:hover {
  background: #334155;
}
.bx-modal-icon {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  margin: 0 auto 1.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.3rem;
  font-weight: 900;
  animation: bxIconPop 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}
@keyframes bxIconPop {
  0% {
    transform: scale(0) rotate(-180deg);
  }
  100% {
    transform: scale(1) rotate(0);
  }
}
.bx-modal-icon.success {
  background: #d1fae5;
  color: #10b981;
  border: 4px solid #6ee7b7;
}
.bx-modal-icon.error {
  background: #fee2e2;
  color: #ef4444;
  border: 4px solid #fca5a5;
}
.bx-modal-icon.warning {
  background: #fef3c7;
  color: #f59e0b;
  border: 4px solid #fcd34d;
}
.bx-modal-icon.info {
  background: #dbeafe;
  color: #3b82f6;
  border: 4px solid #93c5fd;
}
.bx-modal-title {
  font-size: 1.35rem;
  font-weight: 800;
  margin-bottom: 0.5rem;
  color: var(--tx);
}
body.dark .bx-modal-title {
  color: var(--txt-main);
}
.bx-modal-msg {
  font-size: 13.5px;
  color: var(--t2);
  line-height: 1.6;
  margin-bottom: 1.25rem;
}
.bx-modal-tail {
  margin-bottom: 1rem;
}
.bx-modal-tail:empty {
  display: none;
}
.bx-modal-actions {
  display: flex;
  gap: 8px;
  justify-content: center;
  flex-wrap: wrap;
}
.bx-modal-btn {
  padding: 11px 26px;
  border: none;
  border-radius: 11px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  min-width: 120px;
  transition: all 0.2s;
}
.bx-modal-btn.primary {
  background: linear-gradient(135deg, var(--ok), #059669);
  color: #fff;
  box-shadow: 0 4px 14px rgba(16, 185, 129, 0.4);
}
.bx-modal-btn.primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(16, 185, 129, 0.55);
}
.bx-modal-btn.danger {
  background: linear-gradient(135deg, #ef4444, #b91c1c);
  color: #fff;
  box-shadow: 0 4px 14px rgba(239, 68, 68, 0.4);
}
.bx-modal-btn.danger:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(239, 68, 68, 0.55);
}
.bx-modal-btn.ghost {
  background: transparent;
  color: var(--t2);
  border: 1.5px solid var(--bd);
}
.bx-modal-btn.ghost:hover {
  background: var(--bg);
  color: var(--tx);
}

/* ============================================
   USER MENU (Dropdown in nav)
   ============================================ */
.user-menu {
  position: relative;
}
.user-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--bg);
  border: 1px solid var(--bd);
  padding: 5px 12px 5px 5px;
  border-radius: 26px;
  cursor: pointer;
  font-family: inherit;
  font-size: 13px;
  color: var(--tx);
  transition: all 0.15s;
}
.user-btn:hover {
  border-color: var(--p);
  background: var(--pl);
}
body.dark .user-btn {
  background: var(--bg-card);
  border-color: var(--bd-color);
  color: var(--txt-main);
}
body.dark .user-btn:hover {
  background: #1e293b;
}
.user-av {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--p), var(--pd));
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 12px;
  overflow: hidden;
}
.user-av.big {
  width: 42px;
  height: 42px;
  font-size: 16px;
}
.user-av img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.user-nm {
  font-weight: 600;
  max-width: 110px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.user-vip {
  background: #ede9fe;
  color: #6d28d9;
  padding: 2px 6px;
  border-radius: 6px;
  font-size: 10px;
  font-weight: 700;
}
.user-caret {
  font-size: 10px;
  color: var(--mu);
}
.user-drop {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  background: #fff;
  border: 1px solid var(--bd);
  border-radius: 12px;
  min-width: 230px;
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.12);
  padding: 6px;
  display: none;
  z-index: 100;
}
.user-menu.open .user-drop {
  display: block;
  animation: fadeIn 0.15s;
}
body.dark .user-drop {
  background: var(--bg-card);
  border-color: var(--bd-color);
}
.user-drop-head {
  display: flex;
  gap: 10px;
  align-items: center;
  padding: 10px;
  border-bottom: 1px solid var(--bd);
  margin-bottom: 4px;
}
body.dark .user-drop-head {
  border-color: var(--bd-color);
}
.user-drop-item {
  display: block;
  padding: 8px 12px;
  font-size: 13px;
  color: var(--tx);
  cursor: pointer;
  border-radius: 8px;
  text-decoration: none;
  transition: background 0.12s;
}
.user-drop-item:hover {
  background: var(--bg);
}
body.dark .user-drop-item:hover {
  background: #334155;
}
.user-drop-item.danger {
  color: var(--er);
}
.user-drop-item.danger:hover {
  background: #fee2e2;
}
body.dark .user-drop-item {
  color: var(--txt-main);
}

/* ============================================
   SETTINGS PAGE
   ============================================ */
.set-wrap {
  max-width: 1100px;
  margin: 0 auto;
  padding: 1.5rem 2rem;
}
.set-head {
  margin-bottom: 1.75rem;
}
.set-head h1 {
  font-size: 1.7rem;
  font-weight: 800;
  margin-bottom: 0.25rem;
}
.set-head p {
  color: var(--t2);
  font-size: 13.5px;
}

.set-layout {
  display: grid;
  grid-template-columns: 250px 1fr;
  gap: 1.5rem;
  align-items: start;
}
@media (max-width: 800px) {
  .set-layout {
    grid-template-columns: 1fr;
  }
}

.set-side {
  position: sticky;
  top: 80px;
}
@media (max-width: 800px) {
  .set-side {
    position: static;
  }
}
.set-side-card {
  background: #fff;
  border-radius: 14px;
  border: 1px solid var(--bd);
  overflow: hidden;
  padding: 8px;
}
body.dark .set-side-card {
  background: var(--bg-card);
  border-color: var(--bd-color);
}
.set-tab {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 10px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 500;
  color: var(--t2);
  margin-bottom: 2px;
  transition: all 0.12s;
}
.set-tab .ic {
  font-size: 16px;
  width: 22px;
  text-align: center;
}
.set-tab:hover {
  background: var(--bg);
  color: var(--tx);
}
.set-tab.act {
  background: var(--pl);
  color: var(--pd);
  font-weight: 700;
}
body.dark .set-tab:hover {
  background: #334155;
  color: var(--txt-main);
}
body.dark .set-tab.act {
  background: #164e63;
  color: #67e8f9;
}
.set-tab.danger {
  color: var(--er);
}
.set-tab.danger:hover {
  background: #fee2e2;
}
.set-tab.danger.act {
  background: #fee2e2;
  color: #991b1b;
}

.set-main {
  min-width: 0;
}
.set-pn {
  display: none;
}
.set-pn.act {
  display: block;
  animation: fadeIn 0.25s;
}

.set-section {
  background: #fff;
  border: 1px solid var(--bd);
  border-radius: 14px;
  padding: 1.5rem;
  margin-bottom: 1rem;
}
body.dark .set-section {
  background: var(--bg-card);
  border-color: var(--bd-color);
}
.set-section h3 {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--pl);
}
body.dark .set-section h3 {
  border-color: #164e63;
}

.set-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid var(--bd);
  gap: 1rem;
}
.set-row:last-of-type {
  border-bottom: none;
}
body.dark .set-row {
  border-color: var(--bd-color);
}
.set-row-title {
  font-size: 14px;
  font-weight: 600;
}
.set-row-sub {
  font-size: 12px;
  color: var(--t2);
  margin-top: 2px;
}

.set-row select {
  min-width: 200px;
  padding: 9px 12px;
  border: 1.5px solid var(--bd);
  border-radius: 10px;
  font-size: 13px;
  font-family: inherit;
  background: #fff;
  color: var(--tx);
  cursor: pointer;
}
body.dark .set-row select {
  background: var(--bg-input);
  color: var(--txt-main);
  border-color: var(--bd-color);
}

/* Toggle switch */
.switch {
  position: relative;
  display: inline-block;
  width: 50px;
  height: 28px;
  flex-shrink: 0;
}
.switch input {
  display: none;
}
.slider {
  position: absolute;
  inset: 0;
  background: #cbd5e1;
  border-radius: 28px;
  cursor: pointer;
  transition: background 0.25s;
}
.slider::before {
  content: "";
  position: absolute;
  height: 22px;
  width: 22px;
  left: 3px;
  bottom: 3px;
  background: #fff;
  border-radius: 50%;
  transition: transform 0.25s;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
}
.switch input:checked + .slider {
  background: var(--p);
}
.switch input:checked + .slider::before {
  transform: translateX(22px);
}

/* Avatar preview */
.set-avatar-row {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  flex-wrap: wrap;
}
.set-avatar-prev {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--p), var(--pd));
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.5rem;
  font-weight: 800;
  overflow: hidden;
  border: 3px solid var(--pl);
  flex-shrink: 0;
}
.set-avatar-prev img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Account info table */
.set-info-tbl {
  width: 100%;
  font-size: 13px;
}
.set-info-tbl td {
  padding: 6px 0;
}
.set-info-tbl td:first-child {
  color: var(--t2);
  width: 50%;
}
.set-info-tbl td:last-child {
  font-weight: 600;
  text-align: right;
}

/* Danger zone */
.danger-zone {
  border: 2px solid #fca5a5 !important;
  background: #fef2f2 !important;
}
body.dark .danger-zone {
  background: #450a0a !important;
  border-color: #b91c1c !important;
}
.danger-action {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  padding: 1rem;
  background: #fff;
  border-radius: 10px;
}
body.dark .danger-action {
  background: var(--bg-card);
}

/* ============================================
   SIDEBAR (Categories) — Ultra strong left align
   ============================================ */
.sd .sdl {
  padding: 6px 0 !important;
}
.sd .si {
  display: grid !important;
  grid-template-columns: 28px 1fr auto !important;
  align-items: center !important;
  column-gap: 10px !important;
  padding: 10px 16px !important;
  text-align: left !important;
  width: 100% !important;
  cursor: pointer;
  border-left: 3px solid transparent;
  font-size: 13.5px;
  color: var(--t2);
}
.sd .si:hover {
  background: var(--bg);
  color: var(--p);
}
.sd .si.act {
  background: var(--pl) !important;
  color: var(--pd) !important;
  font-weight: 600;
  border-left-color: var(--p);
}
body.dark .sd .si:hover {
  background: #1e293b;
}
body.dark .sd .si.act {
  background: #164e63 !important;
  color: #67e8f9 !important;
}

.sd .si .sic {
  width: 28px !important;
  height: 24px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  font-size: 16px;
  line-height: 1;
}
.sd .si .sicn {
  background: var(--bg);
  color: var(--t2);
  font-size: 11px;
  font-weight: 700;
  padding: 2px 9px;
  border-radius: 11px;
  min-width: 28px;
  text-align: center;
  margin-left: 0 !important;
}
.sd .si.act .sicn {
  background: var(--p);
  color: #fff;
}
body.dark .sd .si .sicn {
  background: #0f172a;
  color: var(--txt-sub);
}

/* ============================================
   MOBILE HAMBURGER + DRAWER
   ============================================ */
.mob-burger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 40px;
  height: 40px;
  border: 0;
  background: transparent;
  cursor: pointer;
  padding: 8px;
  border-radius: 8px;
  transition: background 0.2s;
}
.mob-burger:hover {
  background: var(--pl2);
}
.mob-burger span {
  display: block;
  width: 100%;
  height: 2.5px;
  background: var(--tx);
  border-radius: 2px;
  transition:
    transform 0.3s ease,
    opacity 0.3s;
}
.mob-burger.open span:nth-child(1) {
  transform: translateY(7.5px) rotate(45deg);
}
.mob-burger.open span:nth-child(2) {
  opacity: 0;
}
.mob-burger.open span:nth-child(3) {
  transform: translateY(-7.5px) rotate(-45deg);
}

.mob-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.55);
  backdrop-filter: blur(3px);
  z-index: 998;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.mob-backdrop.open {
  opacity: 1;
  pointer-events: auto;
}

.mob-drawer {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: 300px;
  max-width: 85vw;
  background: #fff;
  z-index: 999;
  transform: translateX(-100%);
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
  box-shadow: 4px 0 24px rgba(0, 0, 0, 0.15);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}
.mob-drawer.open {
  transform: translateX(0);
}

.mob-drawer-h {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.2rem;
  border-bottom: 1px solid var(--bd);
  background: linear-gradient(135deg, var(--pl2) 0%, var(--pl) 100%);
}
.mob-brand {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 17px;
  font-weight: 800;
  color: var(--tx);
  cursor: pointer;
}
.mob-brand .bi {
  width: 34px;
  height: 34px;
  background: linear-gradient(135deg, var(--p), var(--pd));
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 16px;
  font-weight: 900;
}
.mob-close {
  width: 36px;
  height: 36px;
  border: 0;
  background: rgba(255, 255, 255, 0.7);
  border-radius: 50%;
  font-size: 18px;
  color: var(--t2);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}
.mob-close:hover {
  background: var(--er);
  color: #fff;
  transform: scale(1.1);
}

.mob-drawer-sb {
  position: relative;
  padding: 1rem 1.2rem;
  border-bottom: 1px solid var(--bd);
}
.mob-drawer-sb input {
  width: 100%;
  padding: 10px 12px 10px 38px;
  border: 1px solid var(--bd);
  border-radius: 10px;
  font-size: 13px;
  background: var(--bg);
}
.mob-drawer-sb input:focus {
  outline: none;
  border-color: var(--p);
  background: #fff;
  box-shadow: 0 0 0 3px var(--pl2);
}
.mob-drawer-sb svg {
  position: absolute;
  left: 25px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--mu);
  width: 15px;
}

.mob-nav {
  flex: 1;
  padding: 1rem 0;
}
.mob-group {
  margin-bottom: 0.7rem;
}
.mob-group-h {
  padding: 0.5rem 1.4rem;
  font-size: 11px;
  color: var(--mu);
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.mob-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 1.4rem;
  font-size: 14px;
  color: var(--tx);
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s;
  border-left: 3px solid transparent;
}
.mob-item:hover {
  background: var(--pl2);
  color: var(--p);
  border-left-color: var(--p);
  padding-left: 1.6rem;
}
.mob-item .mi-i {
  width: 26px;
  text-align: center;
  font-size: 16px;
}

/* Hide/show for mobile */
@media (max-width: 900px) {
  .mob-burger {
    display: flex;
  }
  .menu {
    display: none !important;
  }
  .sb {
    display: none !important;
  }
  .nav {
    padding: 0 1rem;
  }
  .brand span {
    font-size: 16px;
  }
  .nl {
    gap: 8px;
  }
}

/* Dark mode drawer */
body.dark .mob-drawer {
  background: #0f172a;
  color: #f1f5f9;
}
body.dark .mob-drawer-h {
  background: linear-gradient(135deg, #164e63 0%, #0f172a 100%);
  border-bottom-color: #1e293b;
}
body.dark .mob-brand {
  color: #f1f5f9;
}
body.dark .mob-item {
  color: #cbd5e1;
}
body.dark .mob-item:hover {
  background: rgba(var(--p-rgb), 0.15);
  color: #67e8f9;
}
body.dark .mob-group-h {
  color: #64748b;
}
body.dark .mob-close {
  background: rgba(30, 41, 59, 0.7);
  color: #cbd5e1;
}
body.dark .mob-burger span {
  background: #f1f5f9;
}
body.dark .mob-drawer-sb input {
  background: #1e293b;
  border-color: #334155;
  color: #f1f5f9;
}

/* ============================================
   reCAPTCHA v3 Badge (hide by default, per Google TOS,
   we credit Google in register form footer)
   ============================================ */
.grecaptcha-badge {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Show badge only on register page if needed */
body.show-recaptcha-badge .grecaptcha-badge {
  visibility: visible !important;
  opacity: 1 !important;
}

/* Narrow screens: keep the nav inside the viewport by showing only the avatar */
@media (max-width: 480px) {
  .user-btn { padding: 4px; gap: 0; }
  .user-btn .user-nm,
  .user-btn .user-vip,
  .user-btn .user-caret { display: none; }
}

/* Seller shortcuts (course / program pages, visible to sellers only) */
.seller-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-top: 1rem;
  align-items: center;
}
.seller-actions[hidden] {
  display: none;
}
.seller-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.55rem 1.1rem;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--p), var(--pd));
  color: #fff;
  font-weight: 700;
  font-size: 13px;
  text-decoration: none;
  box-shadow: 0 4px 12px rgba(8, 145, 178, 0.28);
}
.seller-btn:hover {
  filter: brightness(1.08);
  color: #fff;
}
.seller-pending {
  padding: 0.5rem 0.9rem;
  border-radius: 10px;
  background: #fef3c7;
  color: #92400e;
  font-size: 12.5px;
  font-weight: 600;
}
.phw > .seller-actions {
  margin-top: 0;
}
.courses-hero .seller-actions {
  margin: 0 0 1.5rem;
  justify-content: center;
}
