/* ============================================================
   COINBRUST — Product Dark theme layer  (skill-gptcoinbrust)
   Bóc từ shopapi.vn: nền tối ngả tím, nhấn indigo, Plus Jakarta Sans.
   Nạp SAU style.css. Gỡ 1 thẻ <link> là quay lại giao diện cũ.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap');

/* ── 1. Token ───────────────────────────────────────────── */
:root,
.dark,
html {
  --background:         oklch(15.2% .014 275);
  --surface-sunken:     oklch(12.2% .012 275);
  --card:               oklch(18.7% .016 275);
  --popover:            oklch(19.8% .017 275);
  --muted:              oklch(23.8% .017 275);

  --foreground:         oklch(96.5% .004 275);
  --muted-foreground:   oklch(68.8% .016 275);

  --border:             oklch(28.8% .018 275);
  --hairline:           oklch(25.2% .016 275);
  --input:              oklch(29.8% .018 275);

  --primary:            oklch(67.2% .198 274);
  --primary-foreground: oklch(13.5% .02 275);
  --primary-soft:       oklch(26.8% .058 274);
  --primary-hover:      oklch(72.5% .19 274);
  --ring:               oklch(67.2% .198 274);

  --success:     oklch(72.2% .168 152);  --success-soft:     oklch(26.8% .056 152);
  --warning:     oklch(81.2% .148 78);   --warning-soft:     oklch(28.2% .055 72);
  --destructive: oklch(67.8% .196 25);   --destructive-soft: oklch(27.8% .062 25);
  --info:        oklch(70.2% .148 244);  --info-soft:        oklch(26.8% .05 244);
  --money:       oklch(81.2% .148 78);   --money-soft:       oklch(28.8% .058 70);
  --earning:     oklch(80.2% .152 152);

  --radius:    .75rem;
  --radius-md: calc(var(--radius) - 2px);
  --radius-sm: calc(var(--radius) - 4px);

  --shadow-sm:   0 1px 3px 0 hsl(275 60% 3%/.07), 0 1px 2px -1px hsl(275 60% 3%/.05);
  --shadow-md:   0 4px 12px -2px hsl(275 60% 3%/.28), 0 2px 6px -2px hsl(275 60% 3%/.18);
  --shadow-lg:   0 12px 32px -8px hsl(275 60% 3%/.42), 0 4px 12px -4px hsl(275 60% 3%/.26);
  --shadow-glow: 0 0 0 1px oklch(67.2% .198 274/.22), 0 8px 40px -8px oklch(67.2% .198 274/.4);

  /* ── Ánh xạ biến cũ sang hệ mới: đổi ở đây là đổi cả site ── */
  --c-red:      var(--primary);
  --c-red-d:    oklch(58% .2 274);
  --c-red-l:    var(--primary-hover);
  --c-gold:     var(--money);
  --c-gold-l:   oklch(86% .13 78);
  --c-green:    var(--success);
  --c-bg:       var(--surface-sunken);
  --c-surface:  var(--card);
  --c-surface2: var(--muted);
  --c-surface3: var(--border);
  --c-border:   var(--hairline);
  --c-border-r: oklch(67.2% .198 274 / .35);
  --c-text:     var(--foreground);
  --c-muted:    var(--muted-foreground);
  --radius-lg:  16px;
  --shadow:     var(--shadow-lg);
  --shadow-r:   var(--shadow-glow);

  /* Bootstrap */
  --bs-primary:     oklch(67.2% .198 274);
  --bs-body-bg:     var(--surface-sunken);
  --bs-body-color:  var(--foreground);
  --bs-border-color:var(--hairline);
  --bs-border-radius: var(--radius);
  --bs-link-color:  var(--primary);
  --bs-link-hover-color: var(--primary-hover);
}

/* ── 2. Nền ────────────────────────────────────────────── */
html { background: var(--surface-sunken); }

body {
  background: var(--surface-sunken) !important;
  color: var(--foreground);
  font-family: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

/* Quầng sáng mờ — thứ giữ cho nền tối không bị phẳng */
body::before {
  content: ""; position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(60% 50% at 8% 88%,  oklch(72.2% .168 152 / .10), transparent 70%),
    radial-gradient(50% 45% at 92% 42%, oklch(67.2% .198 274 / .10), transparent 70%);
}
body > * { position: relative; z-index: 1; }

/* ── 3. Chữ ────────────────────────────────────────────── */
h1, h2, h3, h4, h5, h6,
.gc-page-title, .gc-section__title, .gc-hero__title {
  font-family: inherit;
  font-weight: 700;
  color: var(--foreground);
  line-height: 1.25;
  letter-spacing: -.01em;
}
h1, .gc-hero__title { font-size: clamp(30px, 4vw, 46px); }
h2, .gc-section__title, .gc-page-title { font-size: clamp(22px, 2.6vw, 30px); }
h3 { font-size: 18px; }
h4 { font-size: 16px; }
h5, h6 { font-size: 14px; }

p, li, td, label, .gc-section__desc, .gc-page-subtitle { font-size: 14px; }
small, .small, .text-muted, .gc-tick-time { font-size: 12px; }

.text-muted, .gc-page-subtitle, .gc-section__desc {
  color: var(--muted-foreground) !important;
}

/* Nhãn nhóm viết hoa — dấu hiệu nhận dạng của phong cách này */
.gc-section__eyebrow, .gc-offerwall-sidebar__title, .gc-ticker__label {
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase;
  color: var(--muted-foreground) !important;
}

a { color: inherit; text-decoration: none; transition: color .15s ease; }
a:hover { color: var(--primary); }

.text-primary, .text-primary1, .gc-text-red, .hover-red:hover {
  color: var(--primary) !important;
}
.gc-amount, .gc-vq__amount { color: var(--money) !important; font-weight: 600; }

/* ── 4. Navbar ─────────────────────────────────────────── */
.navbar, .navbar.bg-light, .navbar-light {
  background: oklch(15.2% .014 275 / .82) !important;
  backdrop-filter: saturate(160%) blur(12px);
  border-bottom: 1px solid var(--hairline);
  padding: 10px 0;
}
.navbar .nav-link {
  font-size: 13px; font-weight: 500;
  color: var(--muted-foreground) !important;
  border-radius: var(--radius-md);
  padding: 7px 11px !important;
  transition: background-color .15s ease, color .15s ease;
}
.navbar .nav-link:hover { background: var(--muted); color: var(--foreground) !important; }
.navbar .nav-link.active { background: var(--primary-soft); color: var(--primary) !important; }
.navbar-toggler {
  border: 1px solid var(--border); border-radius: var(--radius-md);
  padding: 5px 9px;
}
.navbar-toggler:focus { box-shadow: 0 0 0 3px oklch(67.2% .198 274 / .2); }
.dropdown-menu {
  background: var(--popover);
  border: 1px solid var(--hairline);
  border-radius: var(--radius);
  box-shadow: var(--shadow-lg);
  padding: 5px;
}
.dropdown-item {
  color: var(--muted-foreground); font-size: 13px; font-weight: 500;
  border-radius: var(--radius-sm); padding: 7px 10px;
}
.dropdown-item:hover, .dropdown-item:focus {
  background: var(--muted); color: var(--foreground);
}

/* ── 5. Nút ────────────────────────────────────────────── */
.btn, .custom-btn, .custom-btn-earn, .gc-ad-card-v2__btn {
  font-family: inherit;
  font-size: 13px !important;
  font-weight: 500 !important;
  border-radius: var(--radius-md) !important;
  padding: 8px 14px !important;
  border: 1px solid transparent;
  letter-spacing: 0;
  transition: background-color .15s ease, border-color .15s ease, transform .1s ease;
}
.btn:active { transform: translateY(1px); }
.btn:focus-visible { outline: none; box-shadow: 0 0 0 3px oklch(67.2% .198 274 / .28); }

.btn-primary, .btn-red, .custom-btn, .custom-btn-earn,
.bg-primary, .bg-primary1, .gc-ad-card-v2__btn {
  background: var(--primary) !important;
  border-color: transparent !important;
  color: var(--primary-foreground) !important;   /* chữ TỐI, không phải trắng */
}
.btn-primary:hover, .btn-red:hover, .custom-btn:hover,
.custom-btn-earn:hover, .gc-ad-card-v2__btn:hover {
  background: var(--primary-hover) !important;
  color: var(--primary-foreground) !important;
}

.btn-outline-primary, .btn-red-outline {
  background: transparent !important;
  border-color: var(--border) !important;
  color: var(--foreground) !important;
}
.btn-outline-primary:hover, .btn-red-outline:hover {
  background: var(--muted) !important;
  border-color: var(--border) !important;
  color: var(--foreground) !important;
}

.btn-secondary { background: var(--muted) !important; color: var(--foreground) !important; }
.btn-secondary:hover { background: var(--border) !important; }
.btn-success { background: var(--success) !important; color: oklch(14% .03 152) !important; }
.btn-danger  { background: var(--destructive) !important; color: oklch(14% .03 25) !important; }
.btn-lg { font-size: 14px !important; padding: 11px 20px !important; }
.btn-sm { font-size: 12px !important; padding: 6px 11px !important; }

/* ── 6. Thẻ ────────────────────────────────────────────── */
.card, .gc-ad-card, .gc-ad-card-v2, .gc-benefit-card, .gc-step-card,
.gc-stats-card, .gc-offerwall-item, .gc-offerwall-sidebar, .info_box,
.jumbotron, .featured-ads, .bg-surface2, .bg-white, .bg-light {
  background: var(--card) !important;
  border: 1px solid var(--hairline) !important;
  border-radius: var(--radius) !important;
  box-shadow: none !important;
  color: var(--foreground);
}
.card-header, .gc-ad-card__header, .gc-ad-card-v2__header,
.gc-benefit-card__header, .gc-stats-card__header {
  background: transparent !important;
  border-bottom: 1px solid var(--hairline) !important;
  font-weight: 600;
  font-size: 14px;
}
.card-footer, .gc-ad-card-v2__footer {
  background: transparent !important;
  border-top: 1px solid var(--hairline) !important;
}
.card-body { padding: 16px; }
.card-title, .card-title1, .gc-ad-card-v2__title,
.gc-benefit-card__title, .gc-step-card__title {
  font-size: 15px !important; font-weight: 600 !important; color: var(--foreground) !important;
}
.gc-benefit-card__sub, .gc-step-card__text { color: var(--muted-foreground) !important; }

.card:hover, .gc-ad-card-v2:hover, .gc-offerwall-item:hover {
  border-color: var(--border) !important;
}
.shadow, .shadow-sm { box-shadow: var(--shadow-md) !important; }

/* Thẻ nổi bật — dùng tiết kiệm */
.gc-stats-card { box-shadow: var(--shadow-glow) !important; border-color: transparent !important; }

/* ── 7. Section ────────────────────────────────────────── */
.gc-section { background: transparent !important; padding: 56px 0; }
.gc-section--alt { background: var(--background) !important; }
.section-divider, .border-bottom, .border-primary1 {
  border-color: var(--hairline) !important;
}

/* ── 8. Form ───────────────────────────────────────────── */
.form-control, .form-select, input[type=text], input[type=email],
input[type=password], input[type=number], textarea, select {
  background: var(--muted) !important;
  border: 1px solid var(--input) !important;
  border-radius: var(--radius-md) !important;
  color: var(--foreground) !important;
  font-family: inherit; font-size: 14px;
  padding: 9px 12px;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.form-control:focus, .form-select:focus, textarea:focus, select:focus {
  background: var(--muted) !important;
  border-color: var(--ring) !important;
  box-shadow: 0 0 0 3px oklch(67.2% .198 274 / .18) !important;
  color: var(--foreground) !important;
}
.form-control::placeholder { color: var(--muted-foreground) !important; }
.form-label {
  font-size: 12px !important; font-weight: 500 !important;
  color: var(--muted-foreground) !important; margin-bottom: 6px;
}

/* ── 9. Bảng ───────────────────────────────────────────── */
.table {
  --bs-table-bg: transparent;
  --bs-table-color: var(--foreground);
  color: var(--foreground) !important;
  font-size: 13px;
  border-color: var(--hairline) !important;
}
.table > :not(caption) > * > * {
  background: transparent !important;
  color: var(--foreground) !important;
  border-bottom-color: var(--hairline) !important;
  padding: 11px 12px;
}
.table thead th {
  font-size: 11px !important; font-weight: 600 !important;
  letter-spacing: .06em; text-transform: uppercase;
  color: var(--muted-foreground) !important;
  border-bottom: 1px solid var(--border) !important;
}
.table-striped > tbody > tr:nth-of-type(odd) > * { background: transparent !important; }
.table tbody tr:hover > * { background: var(--muted) !important; }

/* ── 10. Badge / Alert ─────────────────────────────────── */
.badge, .gc-badge {
  font-size: 11px !important; font-weight: 600 !important;
  letter-spacing: .02em;
  border-radius: var(--radius-sm) !important;
  padding: 5px 8px !important;
}
.badge-primary, .badge.bg-primary {
  background: var(--primary-soft) !important; color: var(--primary) !important;
}
.badge.bg-success { background: var(--success-soft) !important; color: var(--success) !important; }
.badge.bg-warning { background: var(--warning-soft) !important; color: var(--warning) !important; }
.badge.bg-danger  { background: var(--destructive-soft) !important; color: var(--destructive) !important; }
.badge.bg-info    { background: var(--info-soft) !important; color: var(--info) !important; }

.gc-badge__dot, .gc-stats-card__dot {
  width: 6px; height: 6px; border-radius: 9999px;
  background: currentColor;
  animation: cb-pulse 2s ease-in-out infinite;
}
.gc-stats-card__dot--green { color: var(--success); background: var(--success); }
@keyframes cb-pulse { 0%,100% { opacity: 1 } 50% { opacity: .35 } }

.alert, .error_box, .success_box {
  border-radius: var(--radius) !important;
  border: 1px solid transparent !important;
  font-size: 13px;
  padding: 12px 14px;
}
.alert-success, .success_box { background: var(--success-soft) !important; color: var(--success) !important; }
.alert-danger,  .error_box   { background: var(--destructive-soft) !important; color: var(--destructive) !important; }
.alert-warning { background: var(--warning-soft) !important; color: var(--warning) !important; }
.alert-info    { background: var(--info-soft) !important; color: var(--info) !important; }

/* ── 11. Nav pills / tabs / phân trang ─────────────────── */
.nav-pills {
  background: var(--muted); border-radius: var(--radius-md);
  padding: 3px; display: inline-flex; gap: 2px;
}
.nav-pills .nav-link {
  font-size: 13px; font-weight: 500;
  color: var(--muted-foreground);
  border-radius: var(--radius-sm); padding: 6px 14px;
}
.nav-pills .nav-link.active {
  background: var(--card) !important; color: var(--foreground) !important;
}
.pagination { gap: 4px; }
.page-link {
  background: var(--card); border: 1px solid var(--hairline);
  color: var(--muted-foreground); border-radius: var(--radius-sm) !important;
  font-size: 13px; font-weight: 500; padding: 6px 11px;
}
.page-link:hover { background: var(--muted); color: var(--foreground); }
.page-item.active .page-link {
  background: var(--primary); border-color: transparent; color: var(--primary-foreground);
}
.list-group-item {
  background: var(--card) !important;
  border-color: var(--hairline) !important;
  color: var(--foreground) !important;
  font-size: 13px;
}

/* ── 12. Ticker / hàng chờ rút ─────────────────────────── */
.gc-ticker, .gc-vq {
  background: var(--card) !important;
  border: 1px solid var(--hairline) !important;
  border-radius: var(--radius) !important;
}
.gc-vq__item { border-bottom: 1px solid var(--hairline) !important; }
.gc-vq__item:last-child { border-bottom: 0 !important; }
.gc-vq__user { font-weight: 600; font-size: 13px; }
.gc-vq__verb, .gc-vq__time, .gc-vq__meta, .gc-tick-time {
  color: var(--muted-foreground) !important; font-size: 12px;
}

/* ── 13. Avatar tròn ───────────────────────────────────── */
.rounded-circle { border-radius: 9999px !important; }
.gc-step-card__num {
  background: var(--primary-soft) !important;
  color: var(--primary) !important;
  font-weight: 600;
  border-radius: 9999px !important;
}

/* ── 14. Modal ─────────────────────────────────────────── */
.modal-content {
  background: var(--popover) !important;
  border: 1px solid var(--hairline) !important;
  border-radius: var(--radius) !important;
  box-shadow: var(--shadow-lg) !important;
}
.modal-header, .modal-footer { border-color: var(--hairline) !important; }

/* ── 15. Footer ────────────────────────────────────────── */
.footer, .footer-copyright, .gc-footer {
  background: var(--background) !important;
  border-top: 1px solid var(--hairline) !important;
  color: var(--muted-foreground);
  font-size: 13px;
}
.footer a, .gc-footer a { color: var(--muted-foreground); }
.footer a:hover, .gc-footer a:hover { color: var(--primary); }
.border-primary.border-top { border-color: var(--hairline) !important; }

/* ── 16. Thanh cuộn ────────────────────────────────────── */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--surface-sunken); }
::-webkit-scrollbar-thumb {
  background: var(--border); border-radius: 9999px;
  border: 2px solid var(--surface-sunken);
}
::-webkit-scrollbar-thumb:hover { background: var(--muted-foreground); }
::selection { background: oklch(67.2% .198 274 / .3); color: var(--foreground); }

/* ── 17. Di động ───────────────────────────────────────── */
@media (max-width: 767px) {
  body { font-size: 13px; }
  .gc-section { padding: 36px 0; }
  .card-body { padding: 13px; }
}

/* ── 18. Nút gc-btn (làm phẳng gradient) ───────────────── */
.gc-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: inherit;
  font-size: 13px !important; font-weight: 500 !important;
  border-radius: var(--radius-md) !important;
  padding: 9px 15px !important;
  border: 1px solid transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  transition: background-color .15s ease, border-color .15s ease, transform .1s ease;
}
.gc-btn:active { transform: translateY(1px); }
.gc-btn--primary {
  background: var(--primary) !important;
  color: var(--primary-foreground) !important;
}
.gc-btn--primary:hover { background: var(--primary-hover) !important; color: var(--primary-foreground) !important; }
.gc-btn--gold {
  background: var(--money) !important;
  color: oklch(20% .06 78) !important;
}
.gc-btn--gold:hover { background: oklch(86% .13 78) !important; }
.gc-btn--ghost {
  background: transparent !important;
  border-color: var(--border) !important;
  color: var(--foreground) !important;
}
.gc-btn--ghost:hover { background: var(--muted) !important; }
.gc-btn--lg { font-size: 14px !important; padding: 12px 22px !important; }

/* ── 19. Chi tiết còn lại ──────────────────────────────── */
.gc-badge {
  background: var(--primary-soft) !important;
  color: var(--primary) !important;
  border: 0 !important;
}
.gc-benefit-card__icon-wrap, .gc-ad-card-v2__icon, .gc-offerwall-item__icon {
  background: var(--primary-soft) !important;
  color: var(--primary) !important;
  border-radius: var(--radius-md) !important;
}
.gc-step-card__bar { background: var(--primary) !important; opacity: .5; }
.gc-hero__title, .home_slider_layer h1 { letter-spacing: -.02em; }

/* Lưới + quầng đỏ cũ trong hero: giảm xuống cho hợp nền mới */
.home_slider::before { opacity: .35; }
.home_slider::after {
  background: radial-gradient(circle, oklch(67.2% .198 274 / .14) 0%, transparent 70%) !important;
}

/* Bỏ bóng màu quanh nút — phong cách này phân tầng bằng nền, không bằng bóng */
.btn-primary, .btn-primary:hover, .custom-btn, .custom-btn:hover,
.nav-pills .nav-link.active, .card-title1, input[type="submit"],
.home_slider_layer .btn-primary, .home_slider_layer .btn-primary:hover {
  box-shadow: none !important;
}

/* ── 20. Logo chữ ──────────────────────────────────────── */
.cb-logo { display: inline-flex; align-items: center; gap: 9px; }
.cb-logo__mark { display: block; border-radius: 8px; }
.cb-logo__text {
  font-size: 19px; font-weight: 700; letter-spacing: -.02em;
  color: var(--foreground); line-height: 1; white-space: nowrap;
}
.cb-logo__text span { color: var(--primary); }
.cb-logo--footer .cb-logo__text { font-size: 17px; }
.navbar-brand { padding: 0 !important; }
.navbar-brand:hover img { filter: none !important; }

/* ── 21. Trang đăng nhập / đăng ký ─────────────────────── */
.cb-auth { max-width: 420px; margin: 48px auto 72px; }
.cb-auth--wide { max-width: 600px; }
.cb-auth__card {
  background: var(--card); border: 1px solid var(--hairline);
  border-radius: var(--radius); padding: 28px;
}
.cb-auth__card--done { text-align: center; }
.cb-auth__head { text-align: center; margin-bottom: 22px; }
.cb-auth__mark { border-radius: 11px; margin-bottom: 12px; }
.cb-auth__title { font-size: 22px !important; font-weight: 700; margin: 0 0 5px; }
.cb-auth__sub { font-size: 13px; color: var(--muted-foreground); margin: 0; }

.cb-field { margin-bottom: 14px; }
.cb-field__label {
  display: block; font-size: 12px; font-weight: 500;
  color: var(--muted-foreground); margin-bottom: 6px;
}
.cb-input-wrap { position: relative; }
.cb-input-wrap svg {
  position: absolute; left: 11px; top: 50%; transform: translateY(-50%);
  width: 15px; height: 15px; color: var(--muted-foreground); pointer-events: none;
}
.cb-input-wrap .form-control { padding-left: 34px !important; }
.cb-field--captcha img { border-radius: var(--radius-sm); max-width: 100%; }

.cb-auth__submit {
  width: 100%; display: flex; align-items: center; justify-content: center;
  height: 40px; font-size: 14px !important; margin-top: 4px;
}
.cb-auth__foot {
  margin-top: 18px; padding-top: 16px;
  border-top: 1px solid var(--hairline);
  text-align: center; font-size: 12px; color: var(--muted-foreground);
}
.cb-auth__foot a { color: var(--muted-foreground); }
.cb-auth__foot a:hover { color: var(--primary); }
.cb-auth__dot { margin: 0 7px; opacity: .5; }
.cb-auth__alt { text-align: center; margin-top: 16px; font-size: 13px; color: var(--muted-foreground); }
.cb-auth__alt a { color: var(--primary); font-weight: 500; }

.cb-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.cb-field--full { grid-column: 1 / -1; }
.cb-legend {
  font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
  color: var(--muted-foreground); margin: 20px 0 12px;
  padding-bottom: 8px; border-bottom: 1px solid var(--hairline);
}
.cb-auth__card form > .cb-legend:first-child,
.cb-auth__card .cb-legend:first-of-type { margin-top: 0; }
.cb-check {
  display: flex; gap: 9px; align-items: flex-start;
  font-size: 13px; color: var(--muted-foreground); margin-bottom: 8px; cursor: pointer;
}
.cb-check .form-check-input {
  margin: 2px 0 0; flex: none; width: 15px; height: 15px;
  background: var(--muted); border: 1px solid var(--input);
}
.cb-check .form-check-input:checked { background: var(--primary) !important; border-color: var(--primary) !important; }
.cb-check a { color: var(--primary); }
.cb-done__icon {
  width: 46px; height: 46px; margin: 0 auto 14px; border-radius: 9999px;
  background: var(--primary-soft); color: var(--primary);
  display: flex; align-items: center; justify-content: center;
}
@media (max-width: 575px) {
  .cb-grid { grid-template-columns: 1fr; }
  .cb-auth { margin: 26px auto 48px; }
  .cb-auth__card { padding: 20px; }
}

/* ── 22. Khu tài khoản: header hồ sơ ───────────────────── */
/* Dải màu trên đầu: làm dịu lại thay vì indigo đặc */
.rounded-top.bg-primary.p-4 {
  background: linear-gradient(120deg,
      oklch(67.2% .198 274 / .28),
      oklch(72.2% .168 152 / .16)) !important;
  border: 1px solid var(--hairline);
  border-bottom: 0;
  border-radius: var(--radius) var(--radius) 0 0 !important;
  padding: 26px !important;
}
.bg-white.rounded-bottom {
  background: var(--card) !important;
  border: 1px solid var(--hairline) !important;
  border-top: 0 !important;
  border-radius: 0 0 var(--radius) var(--radius) !important;
  box-shadow: none !important;
}
/* Avatar tròn chồng lên dải màu */
.rounded-circle.border.border-4.border-white.bg-primary {
  background: var(--primary-soft) !important;
  color: var(--primary) !important;
  border: 3px solid var(--card) !important;
  box-shadow: none !important;
}
.bg-white.rounded-bottom h3 { font-size: 19px !important; font-weight: 700; }
.bg-white.rounded-bottom .lead { font-size: 13px !important; color: var(--muted-foreground) !important; }
.bg-white.rounded-bottom .lead .text-danger { color: var(--primary) !important; }
.bg-white.rounded-bottom .small { font-size: 12px !important; color: var(--muted-foreground) !important; }

/* ── 23. Khu tài khoản: sidebar ────────────────────────── */
nav.sidenav {
  display: block;
  background: var(--card) !important;
  border: 1px solid var(--hairline) !important;
  border-radius: var(--radius) !important;
  box-shadow: none !important;
  padding: 14px 12px !important;
  backdrop-filter: none;
}
nav.sidenav .navbar-header {
  display: block;
  font-size: 11px; font-weight: 600;
  letter-spacing: .06em; text-transform: uppercase;
  color: var(--muted-foreground);
  padding: 0 10px; margin-bottom: 7px;
}
nav.sidenav ul { margin-left: 0 !important; margin-bottom: 18px !important; }
nav.sidenav .nav-item { list-style: none; }
nav.sidenav .nav-link {
  display: flex; align-items: center; gap: 10px;
  min-height: 34px; padding: 7px 10px !important;
  margin-bottom: 2px;
  border-radius: var(--radius-md) !important;
  font-size: 13px !important; font-weight: 500 !important;
  color: var(--muted-foreground) !important;
  background: transparent !important;
  transition: background-color .15s ease, color .15s ease;
}
nav.sidenav .nav-link:hover {
  background: var(--muted) !important;
  color: var(--foreground) !important;
}
nav.sidenav .nav-item.active .nav-link,
nav.sidenav .nav-link.active {
  background: var(--primary) !important;
  color: var(--primary-foreground) !important;
}
nav.sidenav .nav-icon { width: 16px; height: 16px; flex: none; }
nav.sidenav .nav-link strong { margin-left: auto; font-size: 11px; }

/* Nav-pills nằm trong card-header của dashboard */
.card-header .nav-pills { background: transparent; padding: 0; gap: 4px; }
.card-header .nav-pills .nav-link { border: 1px solid transparent; }
.card-header .nav-pills .nav-link.active {
  background: var(--primary-soft) !important;
  color: var(--primary) !important;
}

/* ── 24. Sửa đè: hàng tiêu đề bảng không nền ───────────── */
/* style.css có `.table thead th{background:var(--c-surface2)}` đặc hiệu hơn
   selector Bootstrap ở mục 9, nên phải chỉ đích danh. Phong cách này để
   tiêu đề bảng trần, chỉ có chữ hoa mờ và một đường kẻ dưới. */
.table thead th { background: transparent !important; }
.table .num   { text-align: right; font-variant-numeric: tabular-nums; }
.table .money { color: var(--money) !important; font-weight: 600; }

/* ── 25. Bảng: bỏ nền kẻ sọc sót lại ───────────────────── */
/* Bootstrap đặt nền lên chính <tr>, không phải ô, nên mục 9 không với tới. */
.table > tbody > tr,
.table > thead > tr { background: transparent !important; }
.table td[colspan] { color: var(--muted-foreground) !important; }

/* ── 26. Link hành động cuối hàng thành chip ───────────── */
/* Trong khu account chúng nằm ở <td align="right">; trước đây viết dạng
   "[ Withdraw ]", nay đã bỏ ngoặc trong template nên style lại cho gọn. */
td[align="right"] a {
  display: inline-flex; align-items: center;
  height: 26px; padding: 0 10px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 12px; font-weight: 500;
  color: var(--muted-foreground) !important;
  white-space: nowrap;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
td[align="right"] a:hover {
  background: var(--primary-soft);
  border-color: transparent;
  color: var(--primary) !important;
}
td[align="right"] a + a { margin-left: 6px; }

/* ── 27. Bỏ kẻ sọc bảng (phải trùng selector) ──────────── */
/* style.css có `.table-striped tbody tr:nth-of-type(odd){...!important}`.
   Độ đặc hiệu cao hơn mục 25 nên phải lặp đúng selector; file này nạp sau
   nên cùng độ đặc hiệu thì rule dưới đây thắng. Phong cách này phân tách
   hàng bằng đường kẻ mảnh, không bằng nền xen kẽ. */
.table-striped tbody tr:nth-of-type(odd) { background: transparent !important; }

/* ══════════════════════════════════════════════════════════
   28. VIẾT LẠI TRẠNG THÁI ACTIVE CỦA NAV
   style.css dựng sẵn một bộ rule riêng kèm !important, chồng lên
   theme này: navbar có chấm tròn ::after, dropdown có viền trên 2px,
   sidebar active bị cả border-left LẪN thanh ::before rồi lại đổi
   padding khi hover nên chữ nhảy. Dưới đây gỡ hết và dựng lại một
   cách duy nhất: nền mờ + chữ nhấn + một thanh chỉ vị trí.
   Selector phải trùng đúng bản gốc mới thắng được !important.
   ══════════════════════════════════════════════════════════ */

/* ── Navbar ───────────────────────────────────────────── */
.navbar-light .navbar-nav .nav-link:hover {
  color: var(--foreground) !important;
  background: var(--muted) !important;
}
.navbar-light .navbar-nav .active > .nav-link,
.navbar-light .navbar-nav .nav-link.active,
.navbar-light .navbar-nav .nav-link.show {
  color: var(--primary) !important;
  background: var(--primary-soft) !important;
}
.navbar-light .navbar-nav .nav-link:focus { color: var(--foreground) !important; }
/* Bỏ chấm tròn chỉ báo dưới mục active */
.navbar-light .navbar-nav .active > .nav-link::after { display: none !important; }
/* Trả lại mũi tên cho dropdown-toggle (dùng ::after của Bootstrap) */
.navbar-light .navbar-nav .dropdown-toggle::after {
  display: inline-block !important;
  position: static !important;
  transform: none !important;
  width: 0 !important; height: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  margin-left: 6px;
  vertical-align: middle;
  border-top: .3em solid; border-right: .3em solid transparent;
  border-bottom: 0; border-left: .3em solid transparent;
  opacity: .75;
}

/* ── Dropdown: bỏ viền trên đậm, bo đều 4 góc ─────────── */
.navbar .dropdown-menu {
  background: var(--popover) !important;
  border: 1px solid var(--hairline) !important;
  border-top: 1px solid var(--hairline) !important;
  border-radius: var(--radius) !important;
  box-shadow: var(--shadow-lg) !important;
  padding: 5px !important;
  margin-top: 6px !important;
}
.navbar .dropdown-menu .dropdown-item {
  border-radius: var(--radius-sm) !important;
  padding: 8px 10px !important;
  font-size: 13px !important; font-weight: 500 !important;
  color: var(--muted-foreground) !important;
  background: transparent !important;
}
.navbar .dropdown-menu .dropdown-item:hover,
.navbar .dropdown-menu .dropdown-item:focus {
  background: var(--muted) !important;
  color: var(--foreground) !important;
}

/* ── Sidebar khu tài khoản ────────────────────────────── */
nav.sidenav .nav-link {
  position: relative;
  padding-left: 10px !important;
  border-left: 0 !important;
}
nav.sidenav .nav-link:hover {
  color: var(--foreground) !important;
  background: var(--muted) !important;
  padding-left: 10px !important;      /* không để chữ nhảy khi hover */
}
nav.sidenav .nav-item.active > .nav-link,
nav.sidenav .nav-link.active {
  color: var(--primary) !important;
  background: var(--primary-soft) !important;
  border-left: 0 !important;
  padding-left: 10px !important;
  font-weight: 600 !important;
}
/* Một thanh chỉ vị trí duy nhất, thay cho border-left + ::before chồng nhau */
nav.sidenav .nav-item.active > .nav-link::before {
  content: '' !important;
  position: absolute !important;
  left: 0; top: 7px; bottom: 7px;
  width: 3px !important;
  background: var(--primary) !important;
  border-radius: 0 3px 3px 0 !important;
}
/* Icon đi theo màu chữ */
nav.sidenav .nav-icon { stroke: currentColor !important; }
nav.sidenav .nav-link:hover .nav-icon,
nav.sidenav .nav-item.active .nav-icon { stroke: currentColor !important; }
/* Đường kẻ ngăn nhóm: dùng hairline */
nav.sidenav ul.list-unstyled { border-bottom-color: var(--hairline) !important; }
nav.sidenav ul.list-unstyled:last-child { border-bottom: 0 !important; }

/* ══════════════════════════════════════════════════════════
   29. THEME SÁNG
   Mặc định là tối (mục 1). Khối này đè khi <html data-theme="light">.
   Độ đặc hiệu html[data-theme] (0,1,1) thắng :root/html ở mục 1.
   Indigo tối lại và tăng bão hoà để giữ nguyên lực nhấn trên nền trắng —
   không phải đảo ngược máy móc bảng màu tối.
   ══════════════════════════════════════════════════════════ */
html[data-theme="light"] {
  --background:         oklch(99.4% .002 275);
  --surface-sunken:     oklch(96.5% .005 275);
  --card:               oklch(100% 0 0);
  --popover:            oklch(100% 0 0);
  --muted:              oklch(96.8% .004 275);

  --foreground:         oklch(18.1% .017 275);
  --muted-foreground:   oklch(53% .016 275);

  --border:             oklch(91.8% .006 275);
  --hairline:           oklch(93.8% .005 275);
  --input:              oklch(91.8% .006 275);

  --primary:            oklch(55.6% .226 274);
  --primary-foreground: oklch(99% .002 275);
  --primary-soft:       oklch(94.5% .032 274);
  --primary-hover:      oklch(50% .23 274);
  --ring:               oklch(55.6% .226 274);

  --success:     oklch(52% .15 152);   --success-soft:     oklch(94.5% .045 152);
  --warning:     oklch(56% .13 78);    --warning-soft:     oklch(95% .05 80);
  --destructive: oklch(55% .2 25);     --destructive-soft: oklch(95% .04 25);
  --info:        oklch(52% .16 244);   --info-soft:        oklch(94.5% .04 244);
  --money:       oklch(56% .13 78);    --money-soft:       oklch(95% .05 80);
  --earning:     oklch(52% .15 152);

  --shadow-md:   0 4px 12px -2px hsl(275 30% 40%/.10), 0 2px 6px -2px hsl(275 30% 40%/.06);
  --shadow-lg:   0 12px 32px -8px hsl(275 30% 40%/.14), 0 4px 12px -4px hsl(275 30% 40%/.08);
  --shadow-glow: 0 0 0 1px oklch(55.6% .226 274/.18), 0 8px 32px -10px oklch(55.6% .226 274/.28);

  --c-border-r: oklch(55.6% .226 274 / .3);
  --bs-primary: oklch(55.6% .226 274);
}

/* Quầng sáng nền: dịu hơn hẳn ở theme sáng */
html[data-theme="light"] body::before {
  background:
    radial-gradient(60% 50% at 8% 88%,  oklch(72.2% .168 152 / .07), transparent 70%),
    radial-gradient(50% 45% at 92% 42%, oklch(67.2% .198 274 / .07), transparent 70%);
}

/* Navbar mờ nền trắng thay vì đen */
html[data-theme="light"] .navbar,
html[data-theme="light"] .navbar.bg-light,
html[data-theme="light"] .navbar-light {
  background: oklch(100% 0 0 / .85) !important;
}

/* style.css đặt color:#fff !important ở nhiều chỗ (chữ trên nền tối).
   Ở theme sáng những chỗ đó phải đổi lại, nếu không chữ trắng trên nền trắng. */
html[data-theme="light"] .navbar-light .navbar-nav .nav-link:hover,
html[data-theme="light"] .navbar-light .navbar-nav .nav-link:focus,
html[data-theme="light"] nav.sidenav .nav-link:hover {
  color: var(--foreground) !important;
}
html[data-theme="light"] .navbar-light .navbar-nav .active > .nav-link,
html[data-theme="light"] .navbar-light .navbar-nav .nav-link.active,
html[data-theme="light"] .navbar-light .navbar-nav .nav-link.show,
html[data-theme="light"] nav.sidenav .nav-item.active > .nav-link,
html[data-theme="light"] nav.sidenav .nav-link.active {
  color: var(--primary) !important;
}

/* ── Nút chuyển sáng/tối ───────────────────────────────── */
.cb-theme-toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; padding: 0; margin: 0 4px;
  border: 1px solid transparent; border-radius: 9999px;
  background: transparent; color: var(--muted-foreground);
  cursor: pointer;
  transition: background-color .15s ease, color .15s ease;
}
.cb-theme-toggle:hover { background: var(--muted); color: var(--foreground); }
.cb-theme-toggle svg { width: 17px; height: 17px; }
/* Tối: hiện mặt trăng. Sáng: hiện mặt trời. */
.cb-theme-toggle .cb-icon-sun  { display: none; }
.cb-theme-toggle .cb-icon-moon { display: block; }
html[data-theme="light"] .cb-theme-toggle .cb-icon-sun  { display: block; }
html[data-theme="light"] .cb-theme-toggle .cb-icon-moon { display: none; }

/* ── 30. Sửa: màu chữ mục sidebar đang chọn ────────────── */
/* dark-blue.css có `.sidenav.navbar .navbar-nav .active > .nav-link`
   với color !important ở độ đặc hiệu (0,5,0) — cao hơn rule mục 28
   (0,4,1), nên nó thắng và trả chữ về màu link xanh mặc định của
   Bootstrap, gần như không đọc được trên nền primary-soft.
   Selector dưới đây đạt (0,6,1) nên giành lại. */
nav.sidenav.navbar .navbar-nav .nav-item.active > .nav-link,
nav.sidenav.navbar .navbar-nav .nav-link.active,
nav.sidenav.navbar .navbar-nav .active > .nav-link {
  color: var(--primary) !important;
  background: var(--primary-soft) !important;
}
nav.sidenav.navbar .navbar-nav .nav-item .nav-link:hover {
  color: var(--foreground) !important;
}

/* ══════════════════════════════════════════════════════════
   31. ICON: giữ chỗ sẵn
   feather.js thay <i data-feather> thành <svg> sau khi tải. Nếu
   thẻ <i> không có kích thước thì chữ sẽ dịch chỗ lúc icon hiện.
   Đặt sẵn khung 16px để bố cục đứng yên.
   ══════════════════════════════════════════════════════════ */
i[data-feather] {
  display: inline-block;
  width: 16px; height: 16px;
  vertical-align: -3px;
  flex: none;
}
.nav-icon[data-feather], i[data-feather].nav-icon { width: 16px; height: 16px; }

/* ══════════════════════════════════════════════════════════
   32. NAVBAR: tách các mục ra, không để hover dính vào active
   ══════════════════════════════════════════════════════════ */
.navbar .navbar-nav { gap: 2px; }
.navbar .navbar-nav > .nav-item { margin: 0; }
.navbar .navbar-nav > .nav-item > .nav-link { margin: 0 1px; }
@media (max-width: 991px) {
  .navbar .navbar-nav { gap: 0; }
  .navbar .navbar-nav > .nav-item > .nav-link { margin: 1px 0; }
}

/* ══════════════════════════════════════════════════════════
   33. SIDEBAR TÀI KHOẢN: khớp số đo bản gốc
   Đo trên shopapi.vn: mục cao 32px, padding 6px 10px, bo 12px,
   chữ 13px/500, khoảng cách icon–chữ 8px, icon 16px.
   Bản gốc ngăn nhóm bằng khoảng trống, không bằng đường kẻ.
   ══════════════════════════════════════════════════════════ */
nav.sidenav { padding: 12px 10px !important; }
nav.sidenav .navbar-header {
  font-size: 11px !important; font-weight: 600 !important;
  letter-spacing: .06em !important; text-transform: uppercase;
  color: var(--muted-foreground) !important;
  padding: 0 10px !important;
  margin: 0 0 6px !important;
}
nav.sidenav .navbar-nav > ul.list-unstyled,
nav.sidenav ul.list-unstyled {
  border-bottom: 0 !important;      /* bỏ đường kẻ ngăn nhóm */
  padding-bottom: 0 !important;
  margin: 0 0 16px !important;
}
nav.sidenav ul.list-unstyled:last-child { margin-bottom: 4px !important; }
nav.sidenav .nav-link {
  min-height: 32px;
  padding: 6px 10px !important;
  border-radius: var(--radius) !important;   /* 12px như bản gốc */
  gap: 8px;
  line-height: 1.35;
}
nav.sidenav .nav-item.active > .nav-link::before { top: 6px; bottom: 6px; }
nav.sidenav .nav-icon { width: 16px !important; height: 16px !important; }

/* ══════════════════════════════════════════════════════════
   34. QUẦNG SÁNG NỀN — dựng lại cho khớp bản gốc
   Đo trên shopapi.vn: một lớp `fixed inset-0 -z-10` chứa các hình
   TRÒN ĐẶC MÀU rồi blur 90px, không phải radial-gradient:
     • hổ phách  oklch(.812 .148 78)  40rem, trên-trái, opacity .22
     • tím       oklch(.702 .19 274)  34rem, trên-phải, opacity .20
     • xanh lá   oklch(.722 .168 152) 32rem, dưới-trái, opacity .15
   Lớp này `fixed` nên đứng yên theo màn hình khi cuộn — chính điều
   đó tạo cảm giác quầng sáng "đi theo" người xem.
   Bản cũ của mình thiếu hẳn màu hổ phách nên nhìn khác hẳn.
   ══════════════════════════════════════════════════════════ */
body::before {
  content: ""; position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(circle 460px at 2% -2%,  oklch(81.2% .148 78 / .26),  transparent 62%),
    radial-gradient(circle 400px at 99% 12%, oklch(70.2% .19 274 / .24),  transparent 62%),
    radial-gradient(circle 380px at 3% 98%,  oklch(72.2% .168 152 / .18), transparent 62%);
}
html[data-theme="light"] body::before {
  background:
    radial-gradient(circle 460px at 2% -2%,  oklch(81.2% .148 78 / .16),  transparent 62%),
    radial-gradient(circle 400px at 99% 12%, oklch(55.6% .226 274 / .12), transparent 62%),
    radial-gradient(circle 380px at 3% 98%,  oklch(72.2% .168 152 / .12), transparent 62%);
}

/* Footer trong suốt một phần để quầng sáng xuyên qua — bản gốc dùng
   `bg-card/40`. Footer đục là lý do phần chân trang của mình phẳng lì. */
.footer, .gc-footer {
  background: oklch(18.7% .016 275 / .45) !important;
  backdrop-filter: blur(6px);
}
html[data-theme="light"] .footer,
html[data-theme="light"] .gc-footer {
  background: oklch(100% 0 0 / .55) !important;
}
.gc-footer__bottom { background: oklch(12.2% .012 275 / .4) !important; }
html[data-theme="light"] .gc-footer__bottom { background: oklch(96.5% .005 275 / .6) !important; }

/* ══════════════════════════════════════════════════════════
   35. VỆT SÁNG THEO CON TRỎ
   Bản gốc KHÔNG có hiệu ứng này (đã đo: di chuột không đổi gì).
   Thêm theo yêu cầu. Toạ độ do JS đẩy vào --mx/--my.
   Tắt cho người chọn giảm chuyển động, và cho màn cảm ứng.
   ══════════════════════════════════════════════════════════ */
body::after {
  content: ""; position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background: radial-gradient(circle 420px at var(--mx, -999px) var(--my, -999px),
              oklch(67.2% .198 274 / .14), transparent 65%);
  transition: opacity .25s ease;
}
html[data-theme="light"] body::after {
  background: radial-gradient(circle 420px at var(--mx, -999px) var(--my, -999px),
              oklch(55.6% .226 274 / .07), transparent 65%);
}
@media (prefers-reduced-motion: reduce), (hover: none) {
  body::after { display: none; }
}

/* ══════════════════════════════════════════════════════════
   36. ICON SPRITE — thay hẳn feather.js
   Icon giờ nằm sẵn trong HTML dưới dạng <svg class="fi"><use>,
   nên hiện CÙNG LÚC với chữ, không còn độ trễ hay xô lệch.
   Symbol trong sprite chỉ chứa hình, không mang thuộc tính nét —
   phải đặt fill/stroke ở đây, nếu không icon sẽ thành khối đặc.
   ══════════════════════════════════════════════════════════ */
.fi {
  width: 16px; height: 16px;
  display: inline-block;
  vertical-align: -3px;
  flex: none;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.fi use { pointer-events: none; }
/* Các chỗ trước đây dựa vào feather.replace({width:'16px'}) */
.nav-icon.fi { width: 16px; height: 16px; }
.btn .fi, .nav-link .fi { vertical-align: -2px; }

/* ══════════════════════════════════════════════════════════
   37. NAVBAR — chỉnh lại cho đúng thang chữ của hệ thống
   Đo được: link đang 14.72px/600, thanh nav cao 76px, trong khi
   bản gốc là 13px/500 và ~56px. style.css đặt `.navbar-light
   .navbar-nav .nav-link{font-size:.92rem;font-weight:600}` ở
   (0,3,0) nên đè mục 4. Lặp đúng selector đó để giành lại.
   KHÔNG thêm icon vào các link chính: bản gốc không có, và bốn
   chữ ngắn thì icon chỉ làm rối chứ không giúp quét mắt nhanh hơn.
   ══════════════════════════════════════════════════════════ */
.navbar, .navbar.bg-light, .navbar-light { padding: 7px 0 !important; }

.navbar-light .navbar-nav .nav-link,
.navbar .navbar-nav > .nav-item > .nav-link {
  font-size: 13px !important;
  font-weight: 500 !important;
  padding: 7px 11px !important;
  line-height: 1.5;
}

/* Mũi tên dropdown: nhỏ và mờ lại, đừng để nó kêu ngang chữ */
.navbar-light .navbar-nav .dropdown-toggle::after {
  border-top-width: .28em;
  border-right-width: .28em;
  border-left-width: .28em;
  opacity: .55;
  margin-left: 5px;
}
.navbar-light .navbar-nav .nav-link:hover::after,
.navbar-light .navbar-nav .nav-link.show::after { opacity: .9; }

/* ── Khối tài khoản bên phải: gom thành một "chip" ────────
   Trước đây avatar và tên trôi cạnh nhau như hai thứ rời rạc. */
.navbar .navbar-nav.ms-auto > .nav-item.dropdown > .nav-link {
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  padding: 4px 10px 4px 4px !important;
  border: 1px solid var(--hairline);
  border-radius: 9999px !important;
  background: var(--muted);
}
.navbar .navbar-nav.ms-auto > .nav-item.dropdown > .nav-link:hover,
.navbar .navbar-nav.ms-auto > .nav-item.dropdown > .nav-link.show {
  background: var(--border) !important;
  border-color: var(--border);
}
/* Bỏ float cũ, để flex lo việc căn */
.navbar .navbar-nav.ms-auto .nav-link .float-start { float: none !important; margin: 0 !important; }
.navbar .navbar-nav.ms-auto .nav-link .rounded-circle.bg-primary {
  display: grid; place-items: center;
  width: 26px; height: 26px; padding: 0 !important;
}
.navbar .navbar-nav.ms-auto .nav-link .rounded-circle.bg-primary .fi {
  width: 15px !important; height: 15px !important; vertical-align: 0;
}
.navbar .navbar-nav.ms-auto .nav-link .text-primary1 {
  color: var(--foreground) !important;
  font-size: 13px; font-weight: 500;
}

/* Nút Register / Login khi chưa đăng nhập */
.navbar .navbar-nav.ms-auto > .nav-item > .nav-link .fi { opacity: .8; }

/* ══════════════════════════════════════════════════════════
   38. SỬA: navbar bị nhận nhầm là "thẻ"
   Navbar mang class .bg-light, mà mục 6 gom .bg-light vào danh
   sách thẻ nên nó thừa hưởng bo góc 12px + viền 4 cạnh. Thanh
   điều hướng phải vuông và chỉ có một đường kẻ dưới.
   ══════════════════════════════════════════════════════════ */
.navbar, .navbar.bg-light, .navbar-light {
  border-radius: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid var(--hairline) !important;
}

/* ══════════════════════════════════════════════════════════
   39. NAV TRÊN CÙNG: chuyển từ pill sang gạch chân
   Lý do: pill đã gánh quá nhiều việc trong hệ này — sidebar,
   badge, chip tài khoản, nút đều là pill. Thanh nav cũng pill
   nữa thì mọi thứ cùng một sức nặng, không còn thứ bậc.
   Gạch chân tách bạch: nav trên = khu vực, sidebar = trang.
   Dùng ::before vì ::after đã bị Bootstrap chiếm làm mũi tên.
   ══════════════════════════════════════════════════════════ */
@media (min-width: 992px) {
  .navbar-light .navbar-nav > .nav-item > .nav-link,
  .navbar .navbar-nav > .nav-item > .nav-link {
    position: relative;
    background: transparent !important;
    border-radius: 0 !important;
    padding: 7px 2px !important;
    margin: 0 9px !important;
  }
  .navbar-light .navbar-nav > .nav-item > .nav-link::before {
    content: "";
    position: absolute; left: 0; right: 0; bottom: -2px;
    height: 2px; border-radius: 2px;
    background: transparent;
    transition: background-color .15s ease;
  }
  /* Di chuột: chữ sáng lên, gạch chân mờ */
  .navbar-light .navbar-nav > .nav-item > .nav-link:hover {
    background: transparent !important;
    color: var(--foreground) !important;
  }
  .navbar-light .navbar-nav > .nav-item > .nav-link:hover::before {
    background: var(--border);
  }
  /* Đang ở trang đó, hoặc dropdown đang mở: chữ nhấn + gạch đậm */
  .navbar-light .navbar-nav > .active > .nav-link,
  .navbar-light .navbar-nav > .nav-item > .nav-link.active,
  .navbar-light .navbar-nav > .nav-item > .nav-link.show {
    background: transparent !important;
    color: var(--primary) !important;
  }
  .navbar-light .navbar-nav > .active > .nav-link::before,
  .navbar-light .navbar-nav > .nav-item > .nav-link.active::before,
  .navbar-light .navbar-nav > .nav-item > .nav-link.show::before {
    background: var(--primary);
  }

  /* Chip tài khoản giữ nguyên dạng pill — nó là nút, không phải tab */
  .navbar .navbar-nav.ms-auto > .nav-item.dropdown > .nav-link {
    padding: 4px 10px 4px 4px !important;
    margin: 0 !important;
    border-radius: 9999px !important;
    background: var(--muted) !important;
  }
  .navbar .navbar-nav.ms-auto > .nav-item.dropdown > .nav-link::before { display: none; }
  .navbar .navbar-nav.ms-auto > .nav-item.dropdown > .nav-link.show {
    background: var(--border) !important;
    color: var(--foreground) !important;
  }
  /* Register / Login khi chưa đăng nhập cũng không phải tab */
  .navbar .navbar-nav.ms-auto > .nav-item:not(.dropdown) > .nav-link::before { display: none; }
}

/* ══════════════════════════════════════════════════════════
   40. NÚT HAMBURGER
   Bootstrap vẽ icon bằng background-image SVG có màu nét ghi
   cứng, không theo currentColor nên lạc hẳn khỏi bảng màu.
   Thay bằng ba vạch dựng bằng CSS, và biến thành dấu X khi mở.
   ══════════════════════════════════════════════════════════ */
.navbar-toggler {
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; padding: 0 !important;
  background: transparent !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-md) !important;
  color: var(--muted-foreground);
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.navbar-toggler:hover { background: var(--muted) !important; color: var(--foreground); }
.navbar-toggler:focus { box-shadow: 0 0 0 3px oklch(67.2% .198 274 / .22) !important; outline: none; }
.navbar-toggler[aria-expanded="true"] {
  background: var(--primary-soft) !important;
  border-color: transparent !important;
  color: var(--primary);
}

.navbar-toggler .navbar-toggler-icon {
  background-image: none !important;
  width: 17px; height: 2px;
  background-color: currentColor;
  border-radius: 2px;
  position: relative; display: block;
  transition: background-color .15s ease;
}
.navbar-toggler .navbar-toggler-icon::before,
.navbar-toggler .navbar-toggler-icon::after {
  content: ""; position: absolute; left: 0;
  width: 17px; height: 2px;
  background-color: currentColor; border-radius: 2px;
  transition: transform .2s ease, top .2s ease;
}
.navbar-toggler .navbar-toggler-icon::before { top: -6px; }
.navbar-toggler .navbar-toggler-icon::after  { top: 6px; }
/* Mở: ba vạch gập thành dấu X */
.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon { background-color: transparent; }
.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon::before { top: 0; transform: rotate(45deg); }
.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon::after  { top: 0; transform: rotate(-45deg); }

/* ══════════════════════════════════════════════════════════
   41. MENU MOBILE (dưới 992px)
   Trước đây các mục dính sát mép và dải nền của mục đang chọn
   trải hết chiều ngang, trông như lỗi hơn là chủ ý.
   ══════════════════════════════════════════════════════════ */
@media (max-width: 991.98px) {
  .navbar .navbar-collapse { padding: 6px 0 10px; }

  .navbar .navbar-nav > .nav-item > .nav-link {
    display: flex; align-items: center; gap: 9px;
    padding: 10px 12px !important;
    margin: 2px 0 !important;
    border-radius: var(--radius-md) !important;
    font-size: 14px !important;
  }
  .navbar-light .navbar-nav > .nav-item > .nav-link:hover {
    background: var(--muted) !important;
    color: var(--foreground) !important;
  }
  .navbar-light .navbar-nav > .active > .nav-link,
  .navbar-light .navbar-nav > .nav-item > .nav-link.active,
  .navbar-light .navbar-nav > .nav-item > .nav-link.show {
    background: var(--primary-soft) !important;
    color: var(--primary) !important;
  }
  /* Mũi tên dropdown đẩy sang phải cho cân */
  .navbar .navbar-nav > .nav-item > .nav-link.dropdown-toggle::after { margin-left: auto; }

  /* Dropdown con: thụt vào, bỏ nền nổi cho đỡ nặng */
  .navbar .navbar-nav .dropdown-menu {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 2px 0 6px 14px !important;
    margin: 0 !important;
  }
  .navbar .navbar-nav .dropdown-menu .dropdown-item { padding: 9px 12px !important; }

  /* Ngăn cách trước khối tài khoản / đăng nhập */
  .navbar .navbar-nav.ms-auto {
    margin-top: 8px; padding-top: 10px;
    border-top: 1px solid var(--hairline);
  }
  /* Chip tài khoản: trải rộng cho dễ bấm */
  .navbar .navbar-nav.ms-auto > .nav-item.dropdown > .nav-link {
    justify-content: flex-start;
    padding: 6px 12px 6px 6px !important;
    border-radius: 9999px !important;
    background: var(--muted) !important;
    border: 1px solid var(--hairline);
    width: fit-content;
  }
}

/* Sửa: dark-blue.css có `.navbar-light .navbar-toggler{color:rgba(255,255,255,.55)}`
   ở (0,2,0), đè mục 40. Ba vạch dùng currentColor nên phải giành lại màu này. */
.navbar-light .navbar-toggler { color: var(--muted-foreground) !important; }
.navbar-light .navbar-toggler:hover { color: var(--foreground) !important; }
.navbar-light .navbar-toggler[aria-expanded="true"] { color: var(--primary) !important; }

/* ══════════════════════════════════════════════════════════
   42. SỬA: hamburger bị đảo màu
   Cách cũ vẽ 3 vạch bằng ::before/::after rồi `transform: rotate`
   để thành X. Nhưng navbar có `backdrop-filter`, và pseudo-element
   nhỏ + có transform nằm trong lớp bị lọc đó bị Chromium hợp thành
   sai — màu hiển thị ra ĐẢO NGƯỢC (ép đỏ thì hiện xanh lơ, indigo
   thì hiện hổ phách). Computed style vẫn đúng nên nhìn số không ra.
   Dựng lại bằng background-image data-URI: không pseudo-element,
   không transform, nên không chạm vào đường hợp thành đó.
   ══════════════════════════════════════════════════════════ */
.navbar-toggler .navbar-toggler-icon,
.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon {
  width: 20px; height: 20px;
  background-color: transparent !important;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 20px 20px;
  border-radius: 0;
  transition: none;
}
.navbar-toggler .navbar-toggler-icon::before,
.navbar-toggler .navbar-toggler-icon::after { content: none !important; }

/* Ba vạch — màu chữ phụ */
.navbar-toggler .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23989aa5' stroke-width='2' stroke-linecap='round'%3E%3Cline x1='4' y1='7' x2='20' y2='7'/%3E%3Cline x1='4' y1='12' x2='20' y2='12'/%3E%3Cline x1='4' y1='17' x2='20' y2='17'/%3E%3C/svg%3E") !important;
}
.navbar-toggler:hover .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f2f3f6' stroke-width='2' stroke-linecap='round'%3E%3Cline x1='4' y1='7' x2='20' y2='7'/%3E%3Cline x1='4' y1='12' x2='20' y2='12'/%3E%3Cline x1='4' y1='17' x2='20' y2='17'/%3E%3C/svg%3E") !important;
}
/* Đang mở — dấu X màu nhấn */
.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon,
.navbar-toggler[aria-expanded="true"]:hover .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237386ff' stroke-width='2' stroke-linecap='round'%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3C/svg%3E") !important;
}

/* ══════════════════════════════════════════════════════════
   43. HAMBURGER — dùng sprite như mọi icon khác
   Cách background-image data-URI ở mục 42 tuy computed style
   đúng nhưng hiển thị sai màu, không truy được nguyên nhân.
   Bỏ hẳn, dùng <svg><use> từ sprite cho nhất quán toàn site:
   icon thật, ăn currentColor, không phụ thuộc Bootstrap.
   ══════════════════════════════════════════════════════════ */
.navbar-toggler .navbar-toggler-icon { display: none !important; }
.navbar-toggler .cb-burger,
.navbar-toggler .cb-close {
  width: 19px; height: 19px;
  fill: none; stroke: currentColor; stroke-width: 2;
  stroke-linecap: round; stroke-linejoin: round;
}
.navbar-toggler .cb-close  { display: none; }
.navbar-toggler[aria-expanded="true"] .cb-burger { display: none; }
.navbar-toggler[aria-expanded="true"] .cb-close  { display: block; }
