/* -------- header -------- */
header nav {
  background-color: var(--color-white);
}

header .container-fluid {
  width: 1200px;
  line-height: 40px;
  padding: 0px;
}

header #box_nav_left {
  display: flex;
}

header #logo {
  height: 20px;
}

header #box_nav_header {
  margin-left: 72px;
  display: flex;
  align-items: center;
  gap: 32px;
}

header .nav_link {
  color: var(--color-greyDark);
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.01em;
}

header .nav_link:hover {
  color: var(--color-black);
}

header .nav_link span {
  color: var(--color-greyDark);
  transition: color var(--motion-fast) ease;
}

header .nav_link:hover span {
  color: var(--color-black);
}

header .nav_link span.active {
  color: var(--color-black);
  font-weight: 600;
}

body.dark-mode header .nav_link span {
  color: var(--color-greyMedium);
}

body.dark-mode header .nav_link:hover span {
  color: var(--color-white);
}

body.dark-mode header .nav_link span.active {
  color: var(--color-white);
}

header .nav_link img {
  width: 24px;
  height: 24px;
  vertical-align: sub;
}

/* Studio nav dropdown (desktop) */
header .nav_dropdown {
  position: relative;
  display: inline-flex;
  align-items: center;
}

header .nav_dropdown_toggle {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
}

/* caret: pure-CSS chevron (sanctioned exception to the PNG-icon rule) */
header .nav_dropdown_toggle::after {
  content: "";
  width: 7px;
  height: 7px;
  margin-top: -3px;
  border-right: 1.6px solid currentColor;
  border-bottom: 1.6px solid currentColor;
  transform: rotate(45deg);
  transition: transform var(--motion-fast) ease, margin-top var(--motion-fast) ease;
}

header .nav_dropdown:hover .nav_dropdown_toggle::after,
header .nav_dropdown:focus-within .nav_dropdown_toggle::after {
  transform: rotate(-135deg);
  margin-top: 2px;
}

header .nav_dropdown_menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1000;
  min-width: 236px;
  margin: 0;
  padding: 6px;
  list-style: none;
  background: var(--color-surface);
  border: 1px solid var(--color-greyLight);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px);
  transition: opacity var(--motion-fast) ease, transform var(--motion-fast) ease, visibility var(--motion-fast) ease;
}

/* transparent bridge so the hover survives the gap above the menu */
header .nav_dropdown_menu::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -8px;
  height: 8px;
}

header .nav_dropdown:hover .nav_dropdown_menu,
header .nav_dropdown:focus-within .nav_dropdown_menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(8px);
}

header .nav_dropdown_menu a {
  display: block;
  padding: 7px 12px;
  border-radius: var(--radius-sm);
  text-decoration: none;
  transition: background var(--motion-fast) ease;
}

header .nav_dropdown_menu a:hover {
  background: var(--color-greyLight);
}

header .nav_dropdown_menu .nav_dd_title {
  display: block;
  font-weight: 600;
  font-size: 14px;
  line-height: 1.3;
  color: var(--color-greyDark);
  transition: color var(--motion-fast) ease;
}

header .nav_dropdown_menu a:hover .nav_dd_title {
  color: var(--color-black);
}

header .nav_dropdown_menu .nav_dd_desc {
  display: block;
  margin-top: 1px;
  font-size: 12px;
  line-height: 1.3;
  color: var(--color-greyMedium);
  transition: color var(--motion-fast) ease;
}

body.dark-mode header .nav_dropdown_menu {
  background: var(--color-darkCard);
  border-color: var(--color-darkBorder);
  box-shadow: none;
}

body.dark-mode header .nav_dropdown_menu a:hover {
  background: var(--color-darkBorder);
}

body.dark-mode header .nav_dropdown_menu .nav_dd_title {
  color: var(--color-greyLightMedium);
}

body.dark-mode header .nav_dropdown_menu a:hover .nav_dd_title {
  color: var(--color-white);
}

/* brighten the desc with the title on hover — darkBorder fill drops the
   greyMedium desc below AA otherwise, and a half-lit row reads inconsistent */
body.dark-mode header .nav_dropdown_menu a:hover .nav_dd_desc {
  color: var(--color-greyLightMedium);
}

@media (prefers-reduced-motion: reduce) {
  header .nav_dropdown_menu {
    transition: opacity var(--motion-fast) ease, visibility var(--motion-fast) ease;
    transform: none;
  }
  header .nav_dropdown:hover .nav_dropdown_menu,
  header .nav_dropdown:focus-within .nav_dropdown_menu {
    transform: none;
  }
}

header .market_switcher .nav_dropdown_menu {
  min-width: 150px;
}

header .market_switcher .nav_dropdown_menu .is_current .nav_dd_title {
  color: var(--color-primary);
}

header #box_nav_right {
  display: flex;
}

header #box_nav_right_guest {
  display: flex;
  align-items: center;
}

header #box_nav_right_guest a {
  margin-left: 20px;
  text-decoration: none;
  color: var(--color-black);
}

header #box_nav_right_guest #btn_signup {
  width: 108px;
  height: 40px;
  line-height: 40px;
  background-color: var(--color-black);
  color: var(--color-white);
  text-align: center;
  border-radius: var(--radius-sm);
}

header #box_nav_right_guest #btn_signup:hover {
  opacity: 0.85;
}

header #box_nav_right_guest #language {
  height: 25px;
}

header #box_nav_right_user {
  display: none;
  justify-content: space-between;
  align-items: center;
}

header #box_nav_right_user #box_name {
  height: 32px;
  text-align: right;
  width: 120px;
}

header #box_nav_right_user #box_name .box_top {
  display: flex;
  align-items: center;
  justify-content: end;
  gap: 4px;
}

header #box_nav_right_user p {
  margin: 0px;
  line-height: 18px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

header #box_nav_right_user .user_name {
  font-size: 14px;
}

header #box_nav_right_user .user_plan {
  line-height: 14px;
  height: 14px;
  font-size: 8px;
  padding: 0px 4px;
  background-color: var(--color-black);
  color: var(--color-white);
  border-radius: var(--radius-sm);
}

header #box_nav_right_user .user_score {
  font-size: 12px;
  color: var(--color-greyMedium);
}

header #box_nav_right_user .user_score span {
  color: var(--color-black);
}

header #box_nav_right_user .dropdown-toggle {
  width: 48px;
  height: 32px;
  padding: 0px;
  border: 0px;
  margin-left: 12px;
}

header #box_nav_right_user img {
  height: 32px;
  border-radius: var(--radius-pill);
}

header #box_nav_right_user .dropdown-menu {
  width: 210px;
  border-radius: var(--radius-sm);
  padding: 12px;
}

header #box_nav_right_user .dropdown-header {
  padding: 2px 0px;
  line-height: 200%;
  color: var(--color-greyMedium);
  font-size: 12px;
}

header #box_nav_right_user .dropdown-item {
  padding: 2px 12px;
  line-height: 200%;
  color: var(--color-greyDark);
  font-size: 16px;
  font-size: 14px;
  cursor: pointer;
}

header #box_nav_right_user .dropdown-item:hover,
header #box_nav_right_user .dropdown-item:focus,
header #box_nav_right_user .dropdown-item:active {
  background-color: var(--color-greyLight);
}

header #box_nav_right_user hr {
  margin: 8px 0px;
}

header #box_nav_right_user .dropdown-menu .box_uid {
  height: 30px;
  color: var(--color-greyMedium);
  display: flex;
  align-items: center;
  border: 1px var(--color-greyLightMedium) solid;
  border-radius: var(--radius-sm);
  padding: 10px;
  margin-bottom: 8px;
  font-size: 14px;
}

a.mode {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

a.mode .form-switch {
  display: flex;
  justify-content: center;
  align-items: center;
}

a.mode .form-switch input {
  width: 40px;
  height: 24px;
  cursor: pointer;
  border: 0px;
  background-color: var(--color-greyLight);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='white'/%3e%3c/svg%3e");
}

a.mode .form-switch input:checked {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='black'/%3e%3c/svg%3e");
}

header #box_nav_right_header svg {
  width: 20px;
  height: 20px;
  margin-left: 16px;
  color: var(--color-black);
}

header #collapse_header {
  width: 100%;
}

header #collapse_header .card {
  border: 0px;
  background-color: var(--color-white);
  padding: 12px 20px;
  margin: 0px;
  max-height: 520px;
  overflow-y: auto;
}

header #collapse_header .card ul {
  list-style-type: none;
  padding: 0px;
  margin: 0px;
}

header #collapse_header .card li {
  line-height: 30px;
  font-size: 14px;
}

header #collapse_header .card .box_uid {
  height: 30px;
  color: var(--color-greyMedium);
  display: flex;
  align-items: center;
  border: 1px var(--color-greyLightMedium) solid;
  border-radius: var(--radius-sm);
  padding: 10px;
  font-size: 14px;
  margin-bottom: 8px;
}

header #collapse_header .card h6 {
  color: var(--color-greyMedium);
  font-size: 12px;
  line-height: 30px;
}

header #collapse_header .card a {
  color: var(--color-greyDark);
  font-size: 14px;
  text-decoration: none;
  cursor: pointer;
  padding: 0px 12px;
}

header #collapse_header .card a:hover {
  color: var(--color-black);
}

header #collapse_header .card .nav_m_label {
  display: block;
  padding: 0 12px;
  color: var(--color-greyDark);
  font-size: 14px;
}

header #collapse_header .card .nav_m_sub {
  margin-left: 18px;
  padding-left: 0;
  border-left: 1.5px solid var(--color-greyLight);
}

header #collapse_header .card .nav_m_sub a {
  padding-left: 14px;
}

body.dark-mode header #collapse_header .card .nav_m_sub {
  border-left-color: var(--color-darkBorder);
}

header #collapse_header .card a img {
  width: 24px;
  height: 24px;
  vertical-align: sub;
}

header #collapse_header .card hr {
  margin: 8px 0px;
}

header #collapse_header .card #btn_login {
  width: 100%;
  height: 50px;
  line-height: 46px;
  margin-top: 20px;
  margin-bottom: 20px;
  text-align: center;
  border: 2px var(--color-black) solid;
  border-radius: var(--radius-sm);
  text-decoration: none;
  color: var(--color-black);
}

header #collapse_header .card #btn_login:hover {
  background-color: var(--color-black);
  color: var(--color-white);
}

/* -------- footer -------- */
footer {
  position: relative;
  z-index: 999;
}

footer #box_footer {
  color: var(--color-greyMedium);
  font-size: 14px;
  background-color: transparent;
}

footer .container-fluid {
  width: 1200px;
  padding: 24px 0px;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
}

footer #box_footer_left {
  display: flex;
  align-items: center;
  gap: 24px;
}

footer #box_footer_left .box_left {
  display: flex;
  align-items: center;
  gap: 24px;
}

footer #box_footer_left .box_right {
  display: flex;
  align-items: center;
  gap: 24px;
}

footer #box_footer_left a {
  line-height: 20px;
}

footer #box_social {
  display: flex;
  gap: 16px;
}

footer #box_social img {
  height: 20px;
}

footer .box_info {
  border-left: 1px var(--color-greyLight) solid;
  line-height: 20px;
  padding-left: 24px;
}

footer .box_info a {
  color: var(--color-greyMedium);
  text-decoration: none;
  font-size: 14px;
  letter-spacing: 0.01em;
  transition: color var(--motion-fast) ease;
}

footer .box_info a:hover {
  color: var(--color-black);
}

footer #box_footer_right {
  display: flex;
  align-items: center;
  gap: 8px;
}

footer #box_footer_right img {
  height: 36px;
}

/* -------- modal -------- */

#appModal .modal-content {
  padding: 32px;
  width: 350px;
}

#appModal .modal-header {
  padding: 0px;
  border: 0px;
  margin-bottom: 32px;
}

#appModal .modal-body {
  padding: 0px;
}

#appModal .modal-body img {
  width: 100px;
}

#appModal .modal-body .box_qrcode {
  width: 127px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

#appModal .modal-body .qrcode_label {
  display: flex;
  gap: 4px;
  align-items: center;
}

#appModal .modal-body .qrcode_label img {
  width: 24px;
  margin: 0px;
}

#appModal .modal-body .qrcode_label p {
  font-size: 14px;
}

/* -------- RWD -------- */
@media (max-width: 1300px) {
  /* -------- global -------- */
  .container {
    max-width: 588px;
  }

  /* -------- header -------- */
  header .container-fluid {
    width: 588px;
  }

  header #box_nav_header {
    display: none;
  }

  header #box_nav_right_user img {
    margin-left: 12px;
  }

  /* -------- footer -------- */
  footer .container-fluid {
    width: 588px;
  }

  footer #box_footer_left {
    flex-direction: column;
    align-items: start;
    gap: 12px;
  }

  footer #box_footer_left .box_left {
    gap: 12px;
  }

  footer #box_footer_left .box_right {
    gap: 12px;
  }

  footer #box_footer_left .box_left a {
    font-size: 14px;
    line-height: 16px;
  }

  footer #box_social {
    gap: 12px;
  }

  footer #box_social img {
    height: 16px;
  }

  footer .box_info {
    line-height: 17px;
    padding-left: 12px;
  }

  footer .box_info a {
    font-size: 12px;
  }

  footer .box_info.contact_us {
    padding-left: 0px;
    border: 0px;
  }

  footer #box_footer_right img {
    height: 36px;
  }
}

@media (max-width: 768px) {
  /* -------- global -------- */
  .container {
    max-width: 350px;
  }

  /* -------- header -------- */
  header .container-fluid {
    width: 350px;
  }

  /* -------- footer -------- */
  footer .container-fluid {
    width: 350px;
    flex-direction: column;
    gap: 12px;
  }

  footer #box_footer_left {
    flex-direction: column;
    align-items: center;
  }
}

/* -------- Dark mode -------- */
body.dark-mode header nav {
  background-color: var(--color-darkBody);
}

body.dark-mode header .nav_link {
  color: var(--color-greyLightMedium);
}

body.dark-mode header .nav_link:hover {
  color: var(--color-white);
}

body.dark-mode header #box_nav_right_guest a {
  color: var(--color-white);
}

body.dark-mode header #box_nav_right_guest #btn_signup {
  background-color: var(--color-black);
  color: var(--color-white);
}

body.dark-mode header #box_nav_right_guest #btn_signup:hover {
  background-color: var(--color-white);
  color: var(--color-black);
}

body.dark-mode header #box_nav_right_user .user_name {
  color: var(--color-white);
}

body.dark-mode header #box_nav_right_user .user_plan {
  background-color: var(--color-white);
  color: var(--color-black);
}

body.dark-mode header #box_nav_right_user .user_score {
  color: var(--color-greyMedium);
}

body.dark-mode header #box_nav_right_user .user_score span {
  color: var(--color-white);
}

body.dark-mode .btn.dropdown-toggle::after {
  filter: invert(100%);
}

body.dark-mode header #collapse_header .card hr {
  color: var(--color-greyMedium);
}

body.dark-mode footer #box_footer {
  color: var(--color-greyLightMedium);
}

body.dark-mode footer a {
  color: var(--color-greyLightMedium);
}

body.dark-mode footer a:hover {
  color: var(--color-white);
}

body.dark-mode header #box_nav_right_header svg {
  color: var(--color-white);
}
