@charset "utf-8";

/* header */
#header {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 80px;
  z-index: 100;
  box-sizing: border-box;
}

#header > .inner {
  position: relative;
  max-width: 1312px;
  height: 100%;
  margin: auto;
  padding: 0 32px;
  display: flex;
  align-items: center;
  box-sizing: border-box;
}

#header h1 a {
  display: block;
  width: 40px;
  height: 40px;
  text-indent: -9999px;
  background: url('/images/icons/logo.svg') center no-repeat;
}

#header.border {
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

#nav {
  padding-left: 48px;
  padding-right: 24px;
}

#nav ul {
  display: flex;
  align-items: center;
}

#nav li + li {
  padding-left: 16px;
}

#nav li a {
  font-size: 17px;
  font-weight: bold;
  color: rgba(255, 255, 255, 0.5);
}

#nav li.on a {
  color: #fff;
}

.right_menu {
  position: absolute;
  right: 32px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
}

.right_menu span {
  height: 40px;
  cursor: pointer;
  box-sizing: border-box;
}

.right_menu span + span {
  margin-left: 8px;
}

.right_menu span.hd_btn {
  padding: 0 16px;
  font-size: 14px;
  line-height: 38px;
  font-weight: 500;
  border-radius: 20px;
}

.right_menu span.hd_login {
  color: #fff;
  border: solid 2px #e8ecef;
}

.right_menu span.hd_join {
  color: #000;
  background-color: #fff;
}

.right_menu span.hd_credit {
  display: none;
  padding: 0 16px;
  font-size: 14px;
  line-height: 38px;
  font-weight: 500;
  border-radius: 20px;
  color: #fff;
  border: solid 2px #e8ecef;
}

.credit_amount {
  font-weight: 700;
  margin-right: -4px;
}

.credit_label {
  font-weight: 400;
  opacity: 0.9;
}

.hd_profile {
  display: none;
  width: 40px;
  border: solid 1px rgba(0, 0, 0, 0.1);
  border-radius: 50%;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}

.search_box {
  position: relative;
  width: 736px;
  height: 48px;
  padding: 0 44px 0 48px;
  border-radius: 32px;
  background-color: #e8ecef;
  box-sizing: border-box;
}

#header .search_wrap {
  display: none;
}

.search_box .ico_search {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  display: block;
  width: 24px;
  height: 24px;
  text-indent: -9999px;
  background: url('/images/icons/ico_search.svg') center no-repeat;
}

.search_box input {
  width: 100%;
  height: 100%;
  font-size: 17px;
  border: 0;
  color: #000;
}

.search_box .clear_btn {
  display: none;
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  text-indent: -9999px;
  background: url('/images/icons/ico_clear.svg') center no-repeat;
  cursor: pointer;
  box-sizing: border-box;
}

.search_wrap {
  position: relative;
}

.search_wrap .search_input_pop {
  position: absolute;
  top: 100%;
}

/* header_wh */
#header.wh {
  background-color: #fff;
}

#header.wh h1 a {
  background: url('/images/icons/logo_wh.svg') center no-repeat;
}

#header.wh #nav li a {
  color: rgba(0, 0, 0, 0.5);
}

#header.wh #nav li.on a {
  color: #000;
}

#header.wh .right_menu span.hd_login {
  color: #000;
  border: solid 2px #4c545f;
}

#header.wh .right_menu span.hd_join {
  color: #fff;
  background-color: #000;
}

#header.wh .right_menu span.hd_credit {
  color: #000;
  border: solid 2px #4c545f;
}

/* header_on_user */
#header.on_user .right_menu .hd_btn {
  /* display: none; */
}

#header.on_user .hd_credit {
  display: block;
}

#header.on_user .hd_profile {
  display: block;
}

/* header_on_search */
#header.on_search .search_wrap {
  display: block;
}

#header.on_search .search_box {
  width: 535px;
}

.search_box.on {
  background-color: #fff;
  border: solid 1px #dce1e5;
}

.search_box.on .clear_btn {
  display: block;
}

/* header scroll */
#header.on {
  background-color: #000;
}

#header.wh.on {
  background-color: #fff;
}

/* header_menu */
.header_menu {
  position: fixed;
  left: 0;
  top: 80px;
  width: 100%;
  height: 56px;
  background-color: #fff;
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  z-index: 99;
  box-sizing: border-box;
}

.header_menu .inner {
  position: relative;
  width: 1248px;
  height: 100%;
  margin: auto;
  display: flex;
  box-sizing: border-box;
}

.menu_tab_nav {
  display: flex;
  align-items: center;
  height: 100%;
}

.menu_tab_nav li {
  height: 100%;
  display: flex;
  align-items: center;
  font-size: 14px;
  font-weight: 500;
  color: #6c737e;
  cursor: pointer;
}

.menu_tab_nav li span {
  width: 20px;
  height: 20px;
  margin-right: 6px;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}

.menu_tab_nav li span.ico_score {
  background-image: url('/images/icons/ico_score_off2.svg');
}

.menu_tab_nav li span.ico_annotation {
  background-image: url('/images/icons/ico_annotation_off.svg');
}

.menu_tab_nav li span.ico_motif {
  background-image: url('/images/icons/ico_motif_off2.svg');
}

.menu_tab_nav li span.ico_user {
  background-image: url('/images/icons/user_icon.png');
  background-size: 20px 20px;
  opacity: 0.5;
}

.menu_tab_nav li + li {
  margin-left: 32px;
}

.menu_tab_nav li.on {
  position: relative;
  color: #000;
}

.menu_tab_nav li.on::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 100%;
  height: 2px;
  background-color: #000;
}

.menu_tab_nav li.on span.ico_score {
  background-image: url('/images/icons/ico_score.svg');
}

.menu_tab_nav li.on span.ico_annotation {
  background-image: url('/images/icons/ico_annotation.svg');
}

.menu_tab_nav li.on span.ico_motif {
  background-image: url('/images/icons/ico_motif.svg');
}

.menu_tab_nav li.on span.ico_user {
  background-image: url('/images/icons/user_icon.png');
  background-size: 20px 20px;
  opacity: 1;
}

.header_menu .select {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  display: inline-block;
  width: auto;
  padding: 0 32px 0 16px;
  height: 40px;
  line-height: 40px;
  border-radius: 20px;
  border: solid 1px #dce1e5;
  background-color: #fff;
  box-sizing: border-box;
}

.profile {
  background-image: url('/images/icons/random1.png');
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}

/* main_banner */
.main_banner {
  position: relative;
  width: 100%;
  height: 600px;
}

.main_banner::before {
  content: '';
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 2;
  background-image: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0.6),
    rgba(0, 0, 0, 0.2)
  );
}

.main_swiper {
  width: 100%;
  height: 100%;
}

.main_swiper .swiper_slide {
  height: 100%;
  width: 100%;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}

.main_banner .inner {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 736px;
  margin: auto;
  z-index: 3;
}

.banner_nav {
  display: flex;
}

.banner_nav li {
  width: 170px;
  height: 56px;
  text-align: center;
  border-radius: 12px 12px 0 0;
  box-shadow:
    inset -2px 0 0 0 #fff,
    inset 2px 0 0 0 #fff,
    inset 0 2px 0 0 #fff;
  background-color: rgba(0, 0, 0, 0.7);
  font-size: 21px;
  font-weight: bold;
  line-height: 56px;
  color: rgba(255, 255, 255, 0.7);
  cursor: pointer;
  box-sizing: border-box;
}

.banner_nav li + li {
  margin-left: 4px;
}

.banner_nav li.on {
  background-color: #fff;
  color: #000;
}

.banner_tab p {
  padding: 28px 0;
  font-size: 17px;
  font-weight: 500;
  color: #fff;
}

.main_banner .search_box {
  height: 56px;
  padding-left: 56px;
}

.main_banner .search_box .ico_search {
  left: 16px;
}

.main_banner .clear_btn {
  display: block;
  right: 20px;
}

/* main_cont */
.main_cont {
  position: relative;
  width: 1248px;
  margin: auto;
  /* padding-top: 64px;
  padding-bottom: 374px; */
  box-sizing: border-box;
}

.swiper {
  overflow: hidden;
}

.card_wrap {
  padding-bottom: 64px;
}

.card_wrap > h2,
.card_tab > h2 {
  padding-bottom: 32px;
  font-size: 27px;
  font-weight: bold;
  color: #000;
  margin-top:20px;
}

.thum_card {
  position: relative;
  width: 224px;
  box-sizing: border-box;
}

.thum_card a {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
}

.thum_card .thum {
  position: relative;
  width: 100%;
  height: 224px;
  border-radius: 12px;
  border: solid 1px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  box-sizing: border-box;
}

.thum_card .thum img {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: auto;
  height: 100%;
}

.thum_card .desc {
  padding-top: 16px;
}

.thum_card .desc h3 {
  padding-bottom: 8px;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.33;
  color: #000;
}
.thum_card .desc p {
  font-size: 14px;
  line-height: 1.43;
  color: #4c545f;
  -webkit-line-clamp: 2;
}

.thum_card:hover .desc p {
  color: #000;
}

.thum_card .desc .tag_list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding-top: 12px;
}

.thum_card .desc .tag_list li {
  padding: 0 12px;
  height: 24px;
  border-radius: 12px;
  font-size: 12px;
  line-height: 24px;
  color: #000;
  background-color: #e8ecef;
  box-sizing: border-box;
}

.reply_box {
  padding-top: 16px;
  display: flex;
}

.reply_box span {
  position: relative;
  padding-left: 20px;
  font-size: 14px;
  color: #4c545f;
}

.reply_box span::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
}

.reply_box span + span {
  margin-left: 16px;
}

.reply_box span.ico_reply::before {
  background: url('/images/icons/ico_reply.svg') center no-repeat;
}

.reply_box span.ico_like::before {
  background: url('/images/icons/ico_like.svg') center no-repeat;
}

.reply_box span.ico_share::before {
  background: url('/images/icons/ico_share.svg') center no-repeat;
}

.reply_box.big span {
  padding-left: 24px;
}

.reply_box.big span::before {
  width: 20px;
  height: 20px;
  background-size: cover;
}

.thum_card2 {
  position: relative;
  border-radius: 12px;
  border: solid 1px #dce1e5;
  overflow: hidden;
  box-sizing: border-box;
}

.thum_card2 a {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  display: block;
  z-index: 1;
}

.thum_card2 .thum {
  position: relative;
  height: 212px;
  padding: 32px 32px 36px;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  box-sizing: border-box;
}

.thum_card2 .thum::before {
  content: '';
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  background-image: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0.5),
    rgba(0, 0, 0, 0.8)
  );
}

.thum_card2 .thum .inner {
  position: relative;
  z-index: 1;
}

.thum_card2 .thum .label {
  display: block;
  width: 50px;
  height: 48px;
  margin-bottom: 16px;
  border-radius: 4px;
  background-color: #ea4a28;
  font-size: 14px;
  font-weight: 500;
  text-align: center;
  line-height: 48px;
  color: #fff;
  box-sizing: border-box;
}

.thum_card2 .thum h3 {
  font-size: 24px;
  font-weight: bold;
  color: #fff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: normal;
  line-height: 1.2;
  height: auto;
  word-wrap: break-word;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}

.thum_card2 .thum h3 span {
  display: block;
  padding-bottom: 8px;
  font-size: 14px;
  font-weight: 500;
  color: #fff;
}

.thum_card2 .desc {
  padding: 24px 32px 32px;
}

.thum_card2 .desc .card_profile {
  padding-bottom: 16px;
}

.card_profile {
  position: relative;
  display: flex;
  align-items: center;
}

.card_profile > a {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
}

.card_profile .profile {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: solid 1px rgba(0, 0, 0, 0.1);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  box-sizing: border-box;
}

.card_profile .name {
  padding-left: 12px;
  font-size: 14px;
  font-weight: 500;
  color: #000;
}

.card_user_info span {
  font-size: 14px;
  font-weight: 500;
  color: #000;
}

.card_user_info span + span {
  padding-left: 8px;
}

.thum_card2 .desc p {
  padding: 8px 0 24px;
  font-size: 14px;
  line-height: 1.71;
  -webkit-line-clamp: 3;
  color: #4c545f;
}

.thum_card2 .reply_box {
  padding-top: 26px;
}

.tag_list {
  display: flex;
}

.tag_list li {
  cursor: pointer;
  padding: 0 12px;
  height: 32px;
  border-radius: 16px;
  font-size: 14px;
  line-height: 32px;
  color: #000;
  background-color: #e8ecef;
  box-sizing: border-box;
}

.tag_list li + li {
  margin-left: 6px;
}

.swiper_wrap {
  position: relative;
}

.swiper_next,
.swiper_prev {
  position: absolute;
  top: 85px;
  z-index: 1;
  width: 48px;
  height: 48px;
  text-align: center;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.2);
  background-color: #fff;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 50%;
  cursor: pointer;
  box-sizing: border-box;
}

.swiper_prev {
  left: -32px;
  background-image: url('/images/icons/ico_prev.svg');
}

.swiper_next {
  right: -32px;
  background-image: url('/images/icons/ico_next.svg');
}

.main_item2 .swiper_next,
.main_item2 .swiper_prev {
  top: 50%;
  transform: translateY(-50%);
}

.banner_nav2 {
  display: flex;
  width: 100%;
  border-radius: 32px;
  border: solid 2px #000;
  background-color: rgba(0, 0, 0, 0.6);
  box-sizing: border-box;
}

.banner_nav2 li {
  width: 50%;
  height: 64px;
  border-radius: 30px;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  font-size: 21px;
  font-weight: bold;
  color: rgba(255, 255, 255, 0.5);
  box-sizing: border-box;
}

.banner_nav2 li span {
  width: 32px;
  height: 32px;
  margin-right: 12px;
}

.banner_nav2 li span.ico_score {
  background-image: url('/images/icons/ico_score_off.svg');
}

.banner_nav2 li span.ico_motif {
  background-image: url('/images/icons/ico_motif_off.svg');
}

.banner_nav2 li.on {
  background-color: #fff;
  color: #000;
}

.banner_nav2 li.on span.ico_score {
  background-image: url('/images/icons/ico_score.svg');
}

.banner_nav2 li.on span.ico_motif {
  background-image: url('/images/icons/ico_motif_off.svg');
}

/* search_pop */
.search_popup {
  display: none;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  /* z-index: 101; */
  z-index: 1400;
}

.search_popup .bg {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  background-color: rgba(255, 255, 255, 0.4);
}

.search_popup .pop_cont {
  position: absolute;
  left: 0;
  right: 0;
  margin: auto;
  top: 336px;
  width: 736px;
}

.search_popup .search_box {
  height: 56px;
  border-color: #4c545f;
  box-shadow: 0 4px 16px 0 rgba(0, 0, 0, 0.2);
}

.search_input_pop {
  width: 100%;
  margin-top: 8px;
  padding: 8px 8px 8px 16px;
  /* padding: 24px 24px 72px 16px; */
  border-radius: 12px;
  box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.1);
  border: solid 1px #dce1e5;
  background-color: #fff;
  box-sizing: border-box;
}

.search_input_pop .inner {
  padding: 16px 16px 64px 0;
  height: 100%;
  overflow-y: auto;
  box-sizing: border-box;
}

.recent_search {
  height: 400px;
}

.suggest_search {
  height: 440px;
}

.suggest_box {
  position: relative;
}

.suggest_box > h2 {
  padding: 0 0 22px 16px;
  font-size: 14px;
  font-weight: 500;
  color: #000;
}

.suggest_box .clear {
  position: absolute;
  right: 16px;
  top: 0;
  font-size: 14px;
  font-weight: 500;
  text-align: right;
  color: #6c737e;
  cursor: pointer;
}

.recent_list li {
  position: relative;
  width: 100%;
  padding: 16px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  color: #6c737e;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  box-sizing: border-box;
}

.recent_list li::after {
  content: '';
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  background: url('/images/icons/ico_clear2.svg') center no-repeat;
  cursor: pointer;
}

.recent_list li:hover {
  background-color: #f6f8fc;
}

.search_tag {
  padding: 48px 16px 0;
}

.search_tag h2 {
  padding-left: 0;
}

.search_tag .tag_list {
  font-weight: 500;
}

/* thum_item */
.thum_item {
  padding: 16px;
  display: flex;
  border-radius: 8px;
  align-items: center;
  overflow: hidden;
  cursor: pointer;
}

.thum_item:hover {
  background-color: #f6f8fc;
}

.thum_item .thum {
  position: relative;
  width: 56px;
  height: 56px;
  border-radius: 4px;
  overflow: hidden;
  box-sizing: border-box;
}

.thum_item .thum img {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  height: 100%;
}

.thum_item .desc {
  padding-top: 2px;
  padding-left: 16px;
}

.thum_item .desc h2 {
  font-size: 15px;
  font-weight: 500;
  color: #000;
}

.thum_item .desc p {
  padding-top: 8px;
  font-size: 14px;
  color: #4c545f;
}

.thum_item .desc .tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding-top: 8px;
}

.thum_item .desc .tag {
  padding: 0 12px;
  height: 24px;
  border-radius: 12px;
  font-size: 12px;
  line-height: 24px;
  color: #000;
  background-color: #e8ecef;
  box-sizing: border-box;
}

.main_cont2 {
  padding-top: 200px;
}

.thum_card_list {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
}

.thum_card_list .thum_card {
  margin-right: 32px;
  margin-bottom: 64px;
}

.thum_card_list .thum_card:nth-child(5n) {
  margin-right: 0;
}

.thum_card_list.none_data {
  display: block;
  padding-top: 160px;
  text-align: center;
}

.none_data_cont p {
  padding-top: 16px;
  font-size: 14px;
  text-align: center;
  color: #000;
}

.motif_banner {
  padding: 112px 0 32px;
  background-color: #1c232f;
}

.motif_banner2 {
  padding-bottom: 0;
}

.motif_banner .inner {
  position: relative;
  width: 1248px;
  margin: auto;
  box-sizing: border-box;
}

/* musical_staff */
.musical_staff {
  height: 280px;
  border: solid 1px rgba(0, 0, 0, 0.1);
  background-color: #f2f2f4;
  border-radius: 12px 12px 16px 16px;
  box-sizing: border-box;
}

.staff_btn_list {
  position: relative;
  padding: 28px 0 30px;
  font-size: 0;
}

.staff_btn_list span {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  height: 40px;
  padding: 0 14px 0 10px;
  border-radius: 24px;
  font-size: 14px;
  font-weight: 500;
  line-height: 38px;
  color: #dce1e5;
  border: solid 2px #abb2ba;
  cursor: pointer;
  box-sizing: border-box;
}

.staff_btn_list span + span {
  margin-left: 8px;
}

.staff_btn_list span.btn_search {
  position: absolute;
  right: 0;
  top: 24px;
  height: 48px;
  padding: 0 30px 0 16px;
  line-height: 46px;
  font-size: 17px;
  font-weight: 500;
  color: #000;
  background-color: #fff;
  border: 0;
}

.staff_btn_list span::before {
  content: '';
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 20px;
  margin-right: 6px;
  margin-top: -2px;
  box-sizing: border-box;
}

.staff_btn_list span.btn_hide::before {
  background: url('/images/icons/btn_hide.svg') center no-repeat;
}

.staff_btn_list span.btn_undo::before {
  background: url('/images/icons/btn_undo.svg') center no-repeat;
}

.staff_btn_list span.btn_rado::before {
  background: url('/images/icons/btn_rado.svg') center no-repeat;
}

.staff_btn_list span.btn_clear::before {
  background: url('/images/icons/btn_clear.svg') center no-repeat;
}

.staff_btn_list span.btn_search::before {
  background: url('/images/icons/btn_search.svg') center no-repeat;
}

.staff_btn_list span.on {
  color: #dce1e5;
  border: solid 2px #abb2ba;
  background-color: #4c545f;
}

.staff_btn_list span.btn_search.on {
  color: #000;
  background-color: #abb2ba;
}

.keyboard_wrap {
  position: relative;
}

.keyborad {
  width: 1068px;
  height: 152px;
  margin: auto;
  border-radius: 8px;
  background-color: #fff;
  box-sizing: border-box;
}

.keyboard_nav {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 80px;
  height: 40px;
  display: flex;
  align-items: center;
  border-radius: 24px;
  border: solid 2px #abb2ba;
  cursor: pointer;
  box-sizing: border-box;
}

.keyboard_nav li {
  position: relative;
  width: 50%;
  height: 100%;
  border-radius: 50%;
  box-sizing: border-box;
}

.keyboard_nav li span {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
}

.keyboard_nav span.ico_flat {
  background: url('/images/icons/ico_flat.svg') center no-repeat;
}

.keyboard_nav span.ico_sharp {
  background: url('/images/icons/ico_sharp.svg') center no-repeat;
}

.keyboard_nav li::before {
  content: '';
  width: 100%;
  height: 100%;
  transition: background 0.3s;
}

.keyboard_nav li.on::before {
  content: '';
  position: absolute;
  top: 50%;
  left: -1px;
  transform: translateY(-50%);
  width: 40px;
  height: 40px;
  border-radius: 50%;
  transition: background 0.3s;
  background-color: #fff;
}

.keyboard_nav li.on span.ico_flat {
  background: url('/images/icons/ico_flat_on.svg') center no-repeat;
}

.keyboard_nav li.on span.ico_sharp {
  background: url('/images/icons/ico_sharp_on.svg') center no-repeat;
}

.musical_staff_wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
}

.musical_staff.mini {
  width: 600px;
  height: 120px;
  border-radius: 12px;
  border: solid 1px rgba(0, 0, 0, 0.1);
  box-sizing: border-box;
}

.musical_staff.mini a {
  display: block;
  width: 100%;
  height: 100%;
}

.musical_staff_wrap .musical_staff.mini {
  margin-bottom: 32px;
}

.musical_staff_wrap .musical_staff.mini:nth-child(1n + 5) {
  margin-bottom: 0;
}

.staff_swiper_wrap .swiper_next,
.staff_swiper_wrap .swiper_prev {
  top: 50%;
  transform: translateY(-50%);
  margin-top: -18px;
}

.staff_swiper_wrap .swiper_prev {
  left: -80px;
}

.staff_swiper_wrap .swiper_next {
  right: -80px;
}

.thum_card_list .thum_card2 {
  width: calc(50% - 24px);
  margin-right: 48px;
}

.thum_card_list .thum_card2:nth-child(2n) {
  margin-right: 0;
}

/* musical_staff_card */
.musical_staff_card,
.musical_staff_card2 {
  position: relative;
  width: 600px;
  box-sizing: border-box;
}

.thum_card_list .musical_staff_card,
.thum_card_list .musical_staff_card2 {
  margin-right: 48px;
  margin-bottom: 64px;
}

.thum_card_list .musical_staff_card:nth-child(2n),
.thum_card_list .musical_staff_card2:nth-child(2n) {
  margin-right: 0;
}

.staff_thum_card {
  margin-top: 24px;
  display: flex;
}

.staff_thum_card .desc {
  padding-right: 24px;
  width: calc(100% - 224px);
  box-sizing: border-box;
}

.staff_thum_card .desc p {
  padding: 16px 0;
  font-size: 14px;
  line-height: 1.71;
  color: #4c545f;
}

.staff_thum_card .thum,
.staff_thum_card2 .thum {
  position: relative;
  width: 224px;
  height: 128px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  border: solid 1px rgba(0, 0, 0, 0.1);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  overflow: hidden;
  box-sizing: border-box;
}

.staff_thum_card .thum::before,
.staff_thum_card2 .thum::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.2);
}

.staff_thum_card .thum .play,
.staff_thum_card2 .thum .play {
  display: block;
  width: 32px;
  height: 32px;
  margin: auto;
  background: url('/images/icons/ico_play.svg') center no-repeat;
  cursor: pointer;
}

.main_cont3 {
  padding-bottom: 0;
}

.main_cont3 .card_wrap.last {
  padding-bottom: 2px;
}

.none_fixed {
  position: static;
}

.more_btn_wrap {
  position: relative;
  padding-top: 16px;
  margin-bottom:30px;
}

.btn_more {
  display: block;
  width: 108px;
  height: 40px;
  margin: auto;
  border-radius: 20px;
  border: solid 1px #dce1e5;
  background-color: #fff;
  box-sizing: border-box;
}

.btn_more span {
  font-size: 14px;
  font-weight: 500;
  color: #000;
}

.more_btn_wrap .btn_top {
  position: absolute;
  right: 0;
  top: 12px;
  display: block;
  width: 48px;
  height: 48px;
  text-align: center;
  border-radius: 24px;
  border: solid 1px #dce1e5;
  background-color: #fff;
  cursor: pointer;
  box-sizing: border-box;
}

.more_btn_wrap .btn_top img {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

/* musical_staff_card2 */
.staff_info {
  padding-top: 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.measure {
  display: flex;
  align-items: center;
}

.measure h2 {
  padding-right: 8px;
  font-size: 14px;
  color: #4c545f;
}

.measure ul {
  display: flex;
  align-items: center;
}

.measure li {
  min-width: 65px;
  height: 32px;
  padding: 0 6px;
  text-align: center;
  line-height: 32px;
  border-radius: 8px;
  font-size: 11px;
  font-weight: 500;
  color: #000;
  background-color: #e8ecef;
  cursor: pointer;
  box-sizing: border-box;
}

.measure li + li {
  margin-left: 8px;
}

.measure li.on {
  background-color: #000;
  color: #fff;
}

.participants_user {
  display: flex;
}

.participants_user span {
  margin-right: -9px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: solid 1px rgba(0, 0, 0, 0.1);
  box-sizing: border-box;
}

.participants_user span.profile {
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}

.participants_user span.total_numb {
  background-color: #fff;
  text-align: center;
  border: solid 1px rgba(0, 0, 0, 0.2);
  font-size: 12px;
  color: #4c545f;
  line-height: 32px;
}

.participants {
  display: flex;
  align-items: center;
}

.participants > a {
  padding-left: 20px;
  font-size: 14px;
  font-weight: 500;
  text-align: right;
  color: #000;
  cursor: pointer;
}

.staff_thum_card2 {
  padding-top: 24px;
  display: flex;
  align-items: center;
}

.staff_thum_card2 .desc {
  padding-left: 32px;
}

.staff_thum_card2 .desc h2 {
  padding-bottom: 4px;
  font-size: 17px;
  font-weight: 500;
  color: #000;
}

.staff_thum_card2 .desc li {
  padding-top: 6px;
  font-size: 14px;
  color: #4c545f;
}

.regist_motif {
  width: 100%;
  height: 288px;
  padding-top: 56px;
  border-radius: 12px;
  text-align: center;
  border: solid 1px rgba(0, 0, 0, 0.1);
  background-color: #fafcfe;
  box-sizing: border-box;
}

.regist_motif p {
  padding: 24px 0 20px;
  font-size: 14px;
  text-align: center;
  color: #000;
}

.regist_motif button {
  display: block;
  width: 194px;
  height: 44px;
  margin: auto;
  border-radius: 22px;
  background-color: #000;
  box-sizing: border-box;
}

.regist_motif button span {
  font-size: 17px;
  font-weight: 500;
  text-align: center;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}

.regist_motif button span img {
  margin-right: 8px;
}

.motif_detail {
  width: 736px;
  margin: auto;
  padding-top: 142px;
  padding-bottom: 1372px;
  box-sizing: border-box;
}

.motif_detail > h2 {
  padding-bottom: 64px;
  font-size: 27px;
  font-weight: bold;
  text-align: center;
  color: #000;
}

.staff_user_card {
  padding-bottom: 32px;
  border-bottom: 1px solid #dce1e5;
}
/* .staff_user_card.musical_staff {
  cursor: pointer;
} */

.staff_user_card.none_border {
  border: 0;
  padding-bottom: 21px;
}

.staff_user_card.none_border2 {
  border: 0;
  padding-bottom: 80px;
}

.staff_user_card .musical_staff {
  width: 100%;
  height: 136px;
}

.progress_wrap {
  position: relative;
  padding: 0 16px;
  margin: 24px 0 19px;
  display: flex;
  align-items: center;
}

.progress_wrap .play {
  margin-right: 16px;
  cursor: pointer;
}

.progress {
  position: relative;
  width: calc(100% - 40px);
  height: 6px;
  margin-top: -5px;
  border-radius: 3px;
  background-color: #abb2ba;
  box-sizing: border-box;
}

.progress .inner {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  border-radius: 3px;
  background-color: #1c232f;
  box-sizing: border-box;
}

.progress .inner::after {
  content: '';
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  border-radius: 50%;
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.5);
  background-color: #fff;
  cursor: pointer;
  box-sizing: border-box;
}

.card_profile2 {
  position: relative;
  display: flex;
}

.card_profile2 .profile {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  border: solid 1px rgba(0, 0, 0, 0.1);
  box-sizing: border-box;
}

.card_profile2 .profile_info {
  padding-left: 12px;
}

.card_profile2 .profile_info h2 {
  font-size: 17px;
  font-weight: 500;
  color: #000;
}

.card_profile2 .profile_info p span,
.card_profile3 p span {
  font-size: 14px;
  color: #6c737e;
}

.card_profile2 .profile_info p span + span,
.card_profile3 p span + span {
  padding-left: 7px;
}

.profile_btn_list {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
}

.profile_btn_list span {
  padding: 0 16px;
  height: 40px;
  border-radius: 20px;
  border: solid 1px #dce1e5;
  background-color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  font-size: 14px;
  font-weight: 500;
  color: #6c737e;
  box-sizing: border-box;
}

.profile_btn_list span + span {
  margin-left: 8px;
}

.profile_btn_list span::before {
  content: '';
  width: 20px;
  height: 20px;
  margin-right: 8px;
}

.profile_btn_list span.btn_reply::before {
  background: url('/images/icons/reply_off.svg') center no-repeat;
}

.profile_btn_list span.btn_like::before {
  background: url('/images/icons/like_off.svg') center no-repeat;
}

.profile_btn_list span.btn_share::before {
  background: url('/images/icons/ico_share2.svg') center no-repeat;
}

.profile_btn_list span.on.btn_reply::before {
  background: url('/images/icons/reply_on.svg') center no-repeat;
}

.profile_btn_list span.on.btn_like::before {
  background: url('/images/icons/like_on.svg') center no-repeat;
}

.staff_user_list {
  display: flex;
  padding: 23px 0;
  border-bottom: 1px solid #dce1e5;
}

.staff_user_list span {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  border: solid 1px rgba(0, 0, 0, 0.1);
  box-sizing: border-box;
}

.staff_user_list span + span {
  margin-left: 6px;
}

.staff_card_detail {
  padding: 32px 0 40px;
}

.staff_card_detail .card_profile2 {
  margin-bottom: 32px;
}

.text_box {
  font-size: 14px;
  line-height: 1.43;
  color: #000;
}

.staff_card_detail .text_box {
  padding-bottom: 32px;
}

.staff_card_detail .swiper_wrap {
  padding-bottom: 32px;
}

.detail_swiper .swiper_slide {
  width: 440px;
  height: 272px;
}

.detail_swiper .swiper_slide .thum {
  width: 100%;
  height: 100%;
  border-radius: 12px;
  border: solid 1px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  box-sizing: border-box;
}

.feed .thum {
  position: relative;
  width: 440px;
  height: 272px;
  border-radius: 12px;
  border: solid 1px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  box-sizing: border-box;
}

.feed .thum {
  width: 100%;
}

.feed .thum::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  background-color: rgba(0, 0, 0, 0.2);
}

.detail_swiper .swiper_slide img,
.feed .thum img {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  min-height: 100%;
}

.detail_swiper .swiper_slide .play,
.music_detail .thum .play,
.feed .thum .play {
  display: block;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
  width: 48px;
  height: 48px;
  background: url('/images/icons/ico_play3.svg') center no-repeat;
  cursor: pointer;
}

.staff_card_detail .swiper_next,
.staff_card_detail .swiper_prev {
  top: 50%;
  transform: translateY(-50%);
  margin-top: -16px;
}

.staff_card_detail .swiper_prev {
  left: -25px;
}

.staff_card_detail .swiper_next {
  right: -25px;
}

.staff_card_detail .detail_link {
  font-size: 14px;
  line-height: 1.43;
  color: #000;
  text-decoration: underline;
}

.btn_black {
  display: block;
  width: 100%;
  height: 56px;
  border-radius: 8px;
  background-color: #1c232f;
  box-sizing: border-box;
}

.btn_black span {
  font-size: 14px;
  font-weight: 500;
  color: #fff;
}

/* form_item */
.form_item {
  position: relative;
  padding-top: 24px;
}

.form_item h3 {
  padding-bottom: 12px;
  font-size: 14px;
  font-weight: 500;
  color: #6c737e;
}

.textarea {
  position: relative;
  width: 100%;
  min-height: 128px;
  height: auto;
  padding: 12px 12px 44px;
  border-radius: 8px;
  border: solid 1px #e8ecef;
  background-color: #fff;
  box-sizing: border-box;
}

.textarea textarea {
  font-size: 14px;
  line-height: 1.71;
  color: #000;
}

.textarea .numb {
  position: absolute;
  right: 12px;
  bottom: 12px;
  font-size: 14px;
  line-height: 1.71;
  text-align: right;
  color: #6c737e;
}

.textarea.on {
  border: solid 1px #abb2ba;
}

.input {
  width: 100%;
  height: 48px;
  padding: 0 12px;
  border-radius: 8px;
  font-size: 14px;
  line-height: 1.71;
  color: #000;
  border: solid 1px #e8ecef;
  background-color: #fff;
  box-sizing: border-box;
}

.file {
  position: relative;
}

.file input[type='file'] {
  position: absolute;
  width: 0;
  height: 0;
  padding: 0;
  overflow: hidden;
  border: 0;
}

.file label {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  display: block;
  width: 47px;
  height: 32px;
  text-align: center;
  line-height: 32px;
  font-size: 14px;
  color: #fff;
  font-weight: 500;
  cursor: pointer;
  border-radius: 8px;
  background-color: #4c545f;
  box-sizing: border-box;
}

.tag_box {
  display: flex;
  align-items: center;
  padding: 0 8px;
}

.tag_list.edit li {
  position: relative;
  padding: 0 30px 0 10px;
  font-weight: 500;
}

.tag_list.edit li::after {
  content: '';
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  width: 12px;
  height: 12px;
  cursor: pointer;
  background: url('/images/icons/ico_clear.svg') center no-repeat;
  background-size: cover;
}

.tag_box .add {
  padding-left: 6px;
  font-size: 14px;
  line-height: 1.71;
  text-align: right;
  color: #6c737e;
  cursor: pointer;
}

.confirm_list {
  padding-top: 40px;
  display: flex;
  justify-content: space-between;
}

.btn_gray {
  height: 56px;
  border-radius: 8px;
  background-color: #dce1e5;
  box-sizing: border-box;
}

.btn_gray span {
  font-size: 14px;
  font-weight: 500;
  text-align: center;
  color: #4c545f;
}

.confirm_list button {
  width: calc(50% - 4px);
}

.motif_detail .menu_tab_nav {
  justify-content: center;
}

.motif_detail .menu_tab_nav li {
  padding: 16px 0;
  box-sizing: border-box;
}

.detail_tab {
  padding-top: 64px;
  /* display: none; */
}

.detail_tab .musical_staff_card2,
.detail_tab .musical_staff.mini {
  width: 100%;
}

.detail_tab .musical_staff.mini.abcjs-container {
  cursor: pointer;
}

.detail_tab .musical_staff.mini {
  height: 144px;
}

.detail_tab .musical_staff_card2 {
  margin-bottom: 80px;
}

.annotation_cont {
  padding-top: 99px;
  padding-bottom: 510px;
  width: 1248px;
  margin: auto;
  box-sizing: border-box;
}

.music_detail {
  width: 100%;
  height: 288px;
  padding: 24px;
  display: flex;
  align-items: flex-start;
  border-radius: 12px;
  background-color: #1c232f;
  box-sizing: border-box;
}

.music_detail .thum {
  position: relative;
  width: 440px;
  height: 240px;
  border-radius: 12px;
  border: solid 1px rgba(0, 0, 0, 0.1);
  box-sizing: border-box;
  overflow: hidden;
}

.music_detail .thum img {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  min-height: 100%;
}

.music_detail .thum::before {
  content: '';
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
  background-color: rgba(0, 0, 0, 0.2);
}

.music_detail .desc {
  width: calc(100% - 440px);
  height: 100%;
}

.music_detail .desc h2 {
  padding-bottom: 24px;
  padding-right: 180px;
  font-size: 24px;
  line-height: 1.2;
  font-weight: bold;
  color: #fff;
}

.music_detail .desc h2 span {
  display: block;
  padding-bottom: 5px;
  font-size: 14px;
  font-weight: 500;
  color: #dce1e5;
}

.music_detail .desc h2 small.ai_generated_badge {
  display: inline-block;
  margin-left: 12px;
  height: 23px;
  padding: 0 16px;
  border-radius: 16px;
  background-color: #fff;
  color: #1c232f;
  font-size: 10px;
  font-weight: 500;
  line-height: 24px;
  white-space: nowrap;
  border: 1px solid #dce1e5;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  vertical-align: middle;
}

.music_info {
  position: relative;
  display: flex;
}

.music_thum {
  position: relative;
  width: 155px;
  height: 155px;
  margin-right: 16px;
  border-radius: 4px;
  overflow: hidden;
  box-sizing: border-box;
}

.music_thum img {
  min-height: 100%;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

.music_info li {
  font-size: 14px;
  color: #f6f8fc;
}

.music_info li + li {
  margin-top: 8px;
}

.info_btn_list {
  position: absolute;
  right: 64px;
  bottom: 0;
  display: flex;
  align-items: center;
}

.info_btn_list span {
  display: flex;
  align-items: center;
  padding: 0 18px 0 14px;
  height: 40px;
  border-radius: 24px;
  font-size: 14px;
  font-weight: 500;
  color: #dce1e5;
  border: solid 2px #abb2ba;
  cursor: pointer;
  box-sizing: border-box;
}

.info_btn_list span + span {
  margin-left: 8px;
}

.info_btn_list span::before {
  content: '';
  width: 20px;
  height: 20px;
  margin-right: 6px;
}

.info_btn_list span.btn_bookmark::before {
  background: url('/images/icons/btn_bookmark.svg') center no-repeat;
}

.info_btn_list span.btn_share::before {
  background: url('/images/icons/btn_share.svg') center no-repeat;
}

.annotation_board_wrap {
  display: flex;
  align-items: flex-start;
  padding-top: 16px;
  padding-bottom: 64px;
}

.annotation_board_wrap .left {
  width: calc(100% - 504px);
  height: 1038px;
  padding: 24px;
  margin-right: 16px;
  border-radius: 12px;
  border: solid 1px #dce1e5;
  background-color: #fff;
  overflow-y: scroll;
  box-sizing: border-box;
}

.annotation_board_wrap .left_cont {
  height: 100%;
  padding: 16px;
  background-color: #f6f8fc;
  box-sizing: border-box;
}

.annotation_board_wrap .left_box {
  width: 100%;
  height: 90px;
  background-color: rgba(234, 74, 40, 0.2);
  box-sizing: border-box;
}

.annotation_board_wrap .right {
  position: relative;
  width: 488px;
  height: 1038px;
  border-radius: 12px;
  border: solid 1px #dce1e5;
  background-color: #fff;
  box-sizing: border-box;
}

.annotation_board_wrap .right > h2 {
  padding: 24px 24px 17px;
  font-size: 21px;
  font-weight: bold;
  color: #000;
}

.annotation_card {
  padding: 0 24px 16px;
  border-bottom: solid 1px #dce1e5;
}

.annotation_card .card_profile2 {
  padding-bottom: 64px;
}

.annotation_card .card_profile2 .profile_btn_list {
  bottom: 0;
  left: 0;
  top: auto;
  transform: translateY(0);
}

.annotation_card .swiper_wrap {
  margin-bottom: 26px;
}

.profile_swiper {
  width: 380px;
  margin: auto;
}

.profile_swiper .swiper_slide {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  border-radius: 50%;
  box-sizing: border-box;
}

.profile_swiper .swiper_slide-active,
.profile_swiper .swiper_slide:hover {
  border: 1px solid #4c545f;
}

.profile_swiper .profile {
  display: block;
  width: 32px;
  height: 32px;
  margin: auto;
  border: solid 1px rgba(0, 0, 0, 0.1);
  border-radius: 50%;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  box-sizing: border-box;
}

.annotation_card .swiper_next,
.annotation_card .swiper_prev {
  width: 20px;
  height: 20px;
  box-shadow: none;
  background-size: cover;
  top: 50%;
  transform: translateY(-50%);
}

.annotation_card .swiper_prev {
  left: 0;
}

.annotation_card .swiper_next {
  right: 0;
}

.feed {
  position: relative;
  padding: 24px;
  height: 694px;
  overflow-y: auto;
  box-sizing: border-box;
}

.feed .measure {
  padding-bottom: 17px;
}

.feed .measure li {
  min-width: 28px;
  height: 24px;
  line-height: 24px;
}

.feed .measure h2 {
  font-size: 14px;
  font-weight: 500;
  color: #000;
}

.feed .thum {
  margin-top: 24px;
}

.feed .tag_list li {
  margin-top: 16px;
}

.feed .tag_list li a {
  font-weight: 500;
}

.feed_btn_list {
  padding: 16px;
}

.feed_btn_list.type2 {
  display: flex;
}

.feed_btn_list.type2 button {
  width: calc(50% - 4px);
}

.feed_btn_list button + button {
  margin-left: 8px;
}

.feed_comment {
  position: relative;
  height: calc(100% - 343px);
  padding: 20px 24px;
  overflow-y: auto;
  box-sizing: border-box;
}

.feed_comment > h2 {
  padding-bottom: 28px;
  font-size: 21px;
  font-weight: bold;
  color: #000;
}

.feed_comment .close {
  position: absolute;
  top: 20px;
  right: 24px;
  cursor: pointer;
}

.comment_write {
  position: relative;
  display: flex;
  align-items: flex-start;
  padding-bottom: 48px;
  margin-bottom: 24px;
}

.comment_write .profile {
  width: 40px;
  height: 40px;
  margin-right: 12px;
  border: solid 1px rgba(0, 0, 0, 0.1);
  border-radius: 50%;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  box-sizing: border-box;
}

.comment_write textarea {
  width: calc(100% - 52px);
  height: 40px;
  padding: 8px 12px;
  border-radius: 8px;
  border: solid 1px #e8ecef;
  background-color: #fff;
  box-sizing: border-box;
}

.comment_btn_list {
  position: absolute;
  right: 0;
  bottom: 0;
  font-size: 0;
}

.comment_btn_list button {
  height: 32px;
  padding: 0 12px;
  border-radius: 16px;
  box-sizing: border-box;
}

.comment_btn_list button span {
  font-size: 14px;
  font-weight: 500;
  color: #6c737e;
}

.comment_btn_list button.btn_cancel {
  border: solid 1px #dce1e5;
  background-color: #fff;
}

.comment_btn_list button.btn_save {
  background-color: #4c545f;
  margin-left: 8px;
}

.comment_btn_list button.btn_save span {
  color: #fff;
}

.card_profile3 {
  position: relative;
  display: flex;
  align-items: center;
}

.card_profile3 > a {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
}

.comment_box {
  position: relative;
  padding-top: 11px;
  padding-left: 52px;
}

.comment_box .profile {
  position: absolute;
  left: 0;
  top: 0;
  width: 40px;
  height: 40px;
  margin-right: 12px;
  border-radius: 50%;
  border: solid 1px rgba(0, 0, 0, 0.1);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  box-sizing: border-box;
}

.card_profile3 .name {
  font-size: 15px;
  font-weight: 500;
  color: #000;
}

.card_profile3 p {
  padding-left: 10px;
}

.comment_box .text_box {
  padding-top: 8px;
}

.comment_status {
  display: flex;
  align-items: center;
  padding-top: 16px;
}

.comment_status span {
  display: flex;
  align-items: center;
  height: 32px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 500;
  color: #6c737e;
  box-sizing: border-box;
}

.comment_status span.btn_like::before {
  content: '';
  margin-right: 6px;
  width: 20px;
  height: 20px;
  background: url('/images/icons/like_off.svg') center no-repeat;
}

.comment_status span.on.btn_like::before {
  background: url('/images/icons/like_on.svg') center no-repeat;
}

.comment_status span.btn_reply {
  margin-left: 16px;
  padding: 0 12px;
  border-radius: 16px;
  border: solid 1px #dce1e5;
  background-color: #fff;
}

.reply_more {
  padding: 6px 0;
  display: flex;
  margin-top: 16px;
  align-items: center;
}

.reply_more span {
  position: relative;
  font-size: 14px;
  font-weight: 500;
  color: #6c737e;
  cursor: pointer;
}

.reply_more::before {
  content: '';
  margin-right: 6px;
  width: 20px;
  height: 20px;
  transition: all 0.2s;
  background: url('/images/icons/ico_down.svg') center no-repeat;
}

.reply_more.on::before {
  transition: all 0.2s;
  background: url('/images/icons/ico_up.svg') center no-repeat;
}

.comment_item {
  padding-bottom: 21px;
}

.comment_box.on {
  padding-bottom: 0;
}

.comment_box.re_comment {
  padding-top: 23px;
  padding-left: 96px;
  display: none;
}

.comment_box.re_comment.on {
  display: block;
}

.comment_box.re_comment .profile {
  width: 32px;
  height: 32px;
  left: 52px;
  top: 16px;
}

.card_profile3 p span {
  font-size: 12px;
}

.comment_write.re_comment {
  display: none;
  padding-top: 24px;
  padding-left: 52px;
  margin-top: -10px;
  margin-bottom: 16px;
  padding-right: 8px;
}

.comment_write.re_comment.on {
  display: block;
}

.comment_write.re_comment2 {
  padding-left: 96px;
}

.comment_write.re_comment.on {
  display: flex;
}

.comment_write.re_comment .profile {
  width: 32px;
  height: 32px;
}

.comment_write.re_comment .comment_btn_list {
  right: 15px;
}

.comment_write.re_comment .input.on {
  border-color: #abb2ba;
}

.card_wrap.small h2 {
  padding-bottom: 24px;
  font-size: 16px;
}

.thum_card3 .thum {
  border-radius: 8px;
  background-color: #f6f8fc;
}

.thum_card3 .desc h3 {
  padding-bottom: 5px;
  font-size: 14px;
}

.annotation_board_wrap .right2 .close {
  position: absolute;
  right: 24px;
  top: 24px;
  cursor: pointer;
}

.annotation_card2 {
  padding-top: 12px;
  padding-bottom: 24px;
}

.music_detail2 .info_btn_list {
  bottom: -48px;
}

.annotation_card2 .card_profile2 {
  padding-bottom: 47px;
}

.annotation_card2 .measure {
  position: absolute;
  left: 0;
  bottom: 0;
}

.annotation_card2 .measure h2 {
  font-weight: 500;
}

.annotation_card2 .measure li {
  height: 24px;
  line-height: 24px;
}

.feed_write {
  height: calc(100% - 281px);
  padding: 4px 30px 377px 24px;
  overflow-y: auto;
  box-sizing: border-box;
}

.select {
  width: 100%;
  height: 48px;
  padding: 0 12px;
  font-size: 14px;
  line-height: 48px;
  color: #000;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-radius: 8px;
  border: solid 1px #e8ecef;
  cursor: pointer;
  background: url('/images/icons/ico_down.svg') calc(100% - 12px) 50% #fff
    no-repeat;
  box-sizing: border-box;
}
/* 
.select_ul {
  display: none;
  position: absolute;
  left: 0;
  top: 100%;
  z-index: 1;
  margin-top: 4px;
  width: 100%;
  height: 368px;
  padding: 16px;
  border-radius: 8px;
  box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.1);
  border: solid 1px #dce1e5;
  background-color: #fff;
  overflow-y: auto;
  box-sizing: border-box;
}

.select_ul li {
  width: 100%;
  height: 48px;
  padding: 0 16px;
  line-height: 48px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  color: #6c737e;
  cursor: pointer;
  box-sizing: border-box;
}

.select_ul li:hover {
  background-color: #f6f8fc;
} */

.select_ul.on {
  display: block;
}

.feed_write .textarea {
  height: 200px;
  padding: 14px 12px;
}

.feed_write .textarea textarea {
  height: 100%;
}

.radio_list {
  padding-top: 6px;
  font-size: 0;
}

.radio_list li {
  display: inline-block;
  vertical-align: middle;
}

.radio_list li + li {
  margin-left: 32px;
}

.radio_list input {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 0;
}

.radio_list li label {
  position: relative;
  display: block;
  font-size: 14px;
  color: #000;
  padding-left: 32px;
  cursor: pointer;
  box-sizing: border-box;
}

.radio_list li label::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  background: url('/images/icons/ico_radio.svg') center no-repeat;
  box-sizing: border-box;
}

.radio_list input[type='radio']:checked + label::before {
  background: url('/images/icons/ico_radio_on.svg') center no-repeat;
}

.annotation_cont2 .card_wrap {
  padding-bottom: 0;
}

.thum_card_list .thum_card3 .desc {
  padding-top: 13px;
}

.annotation_cont3 .music_detail + .music_detail {
  margin-top: 16px;
}

.popup {
  display: none;
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 101;
}

.popup.on {
  display: block;
}

.popup .bg {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.4);
}

.shop_pop .pop_cont {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 736px;
  margin: auto;
}

.pop_swiper .thum {
  position: relative;
  width: 736px;
  height: 952px;
  overflow: hidden;
}

.pop_swiper .thum img {
  position: absolute;
  left: 50%;
  top: 50%;
  min-height: 100%;
  transform: translate(-50%, -50%);
}

.pop_swiper p {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  height: 64px;
  margin-top: 17px;
  padding: 8px 8px 8px 16px;
  border-radius: 8px;
  font-size: 14px;
  line-height: 1.43;
  color: #000;
  background-color: #fff;
  box-sizing: border-box;
}

.pop_swiper p a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 48px;
  padding: 0 16px;
  border-radius: 24px;
  font-size: 14px;
  font-weight: 500;
  color: #fff;
  background-color: #000;
  box-sizing: border-box;
}

.pop_swiper p a img {
  margin-left: 8px;
}

.shop_pop .swiper_prev,
.shop_pop .swiper_next {
  top: 50%;
  transform: translateY(-50%);
}

.shop_pop .swiper_prev {
  left: -80px;
}

.shop_pop .swiper_next {
  right: -80px;
}

.signup_wrap {
  display: flex;
  width: 100%;
  height: 100%;
}

.signup_banner {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 46%;
  height: 100%;
  padding: 80px;
  background: url('/images/icons/sign_banner.jpg') center no-repeat;
  box-sizing: border-box;
}

.signup_banner::before {
  content: '';
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0.6),
    rgba(0, 0, 0, 0.4)
  );
}

.signup_banner h1 {
  position: absolute;
  left: 80px;
  top: 80px;
  z-index: 1;
}

.signup_banner h1 a {
  display: block;
  width: 56px;
  height: 56px;
  text-indent: -9999px;
  background: url('/images/icons/logo.svg') center no-repeat;
}

.signup_text {
  position: relative;
  z-index: 1;
}

.signup_text h2 {
  font-size: 48px;
  font-weight: bold;
  color: #fff;
}

.signup_text p {
  padding-top: 16px;
  font-size: 20px;
  font-weight: 500;
  color: #fff;
}

.signup_form {
  position: relative;
  width: 50%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  box-sizing: border-box;
}

.signup_form .close {
  position: absolute;
  right: 32px;
  top: 28px;
  cursor: pointer;
}

.signup_form_box {
  width: 480px;
  margin: auto;
  text-align: center;
}

.signup_form_box h2 {
  padding-bottom: 21px;
  font-size: 48px;
  font-weight: bold;
  text-align: center;
  color: #000;
}

.signup_form_box > p {
  font-size: 14px;
  font-weight: 500;
  color: #6c737e;
}

.signup_form_box > p a {
  display: inline-block;
  vertical-align: middle;
  margin-left: 8px;
  font-size: 14px;
  font-weight: 500;
  color: #000;
  text-decoration: underline;
}

.login_select_list {
  padding-top: 80px;
}

.login_select {
  position: relative;
  width: 100%;
  height: 56px;
  padding: 16px;
  margin-bottom: 24px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  color: #000;
  border: solid 1px #dce1e5;
  background-color: #f6f8fc;
  background-position: 16px 50%;
  background-repeat: no-repeat;
  cursor: pointer;
  box-sizing: border-box;
}

.login_select.google {
  background-image: url('/images/icons/ico_google.svg');
}

.login_select.facebook {
  background-image: url('/images/icons/ico_facebook.svg');
}

.login_select.email {
  background-image: url('/images/icons/ico_email.svg');
}

.login_select_list .or {
  display: block;
  padding-bottom: 24px;
  font-size: 14px;
  font-weight: 500;
  color: #6c737e;
}

.login_select_list p,
.join_text {
  padding-top: 24px;
  font-size: 12px;
  text-align: center;
  color: #6c737e;
}

.login_select_list p a,
.join_text a {
  text-decoration: underline;
}

.join_wrap {
  position: relative;
  padding: 120px 0 82px;
}

.join_wrap .close {
  position: absolute;
  right: 32px;
  top: 28px;
  z-index: 1;
  cursor: pointer;
}

.join_wrap h2 {
  padding-bottom: 54px;
  font-size: 27px;
  font-weight: bold;
  color: #000;
  text-align: center;
}

.join_wrap h2 img {
  display: block;
  margin: auto;
  padding-bottom: 40px;
}

.join {
  width: 480px;
  margin: auto;
  box-sizing: border-box;
}

.input_box {
  position: relative;
}

.input_box .input {
  padding-right: 60px;
}

.input_box.btn .input {
  padding-right: 98px;
}

.input_box .input_submit {
  position: absolute;
  right: 6px;
  top: 6px;
  display: block;
  height: 36px;
  line-height: 36px;
  padding: 0 10px;
  font-size: 14px;
  font-weight: 500;
  color: #fff;
  border-radius: 8px;
  background-color: #dce1e5;
  box-sizing: border-box;
  cursor: pointer;
}

.input_box .input_submit.on,
.input_box .input_submit:hover {
  background-color: #4c545f;
}

.join .form_item {
  padding-top: 22px;
}

.form_item h3 span {
  padding-left: 3px;
}

.form_item .time {
  display: block;
  position: absolute;
  right: 12px;
  top: 16px;
  font-size: 14px;
  font-weight: 500;
  text-align: right;
  color: #6c737e;
}

.form_item .psw_eyes {
  display: block;
  position: absolute;
  right: 12px;
  top: 16px;
  display: block;
  width: 16px;
  height: 16px;
  background: url('/images/icons/psw_eyes.svg') center no-repeat;
  cursor: pointer;
}

.form_item .psw_eyes.on {
  background: url('/images/icons/psw_eyes2.svg') center no-repeat;
}

.flex_item {
  display: flex;
  align-items: center;
}

.flex_item h3,
.flex_item .radio_list {
  padding: 0;
}

.flex_item .gender_list {
  padding-left: 32px;
}

.form_item.flex_item {
  padding-top: 34px;
  padding-bottom: 12px;
}

.form_select .select {
  width: calc(33.333% - 6px);
}

.form_select .select + .select {
  margin-left: 12px;
}

.join button {
  margin-top: 40px;
  display: block;
  height: 56px;
}

.join_wrap2 {
  padding: 230px 0;
}

.input.on {
  border-color: #abb2ba;
}

.input_clear {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 12px;
  cursor: pointer;
}

.form_item.error input {
  border-color: #ea4a28;
}

.error_txt {
  position: absolute;
  left: 0;
  bottom: -24px;
  font-size: 14px;
  color: #ea4a28;
}

.login_box {
  margin-top: -24px;
  padding-bottom: 24px;
}

.login_box .form_item h3 {
  text-align: left;
}

.form_item .psw_link {
  position: absolute;
  right: 0;
  top: 24px;
  font-size: 14px;
  color: #000;
  text-decoration: underline;
}

.join_info_txt {
  text-align: center;
  font-size: 14px;
  font-weight: 500;
  color: #6c737e;
}

.join_wrap3 {
  height: 100%;
  padding: 30px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.join_wrap3 h2 {
  padding-bottom: 24px;
}

.join_wrap3 .join button {
  margin-top: 40px;
}

.mypage {
  padding: 200px 0 20px;
  width: 1000px;
  margin: auto;
  box-sizing: border-box;
}

.mypage_profile {
  display: flex;
  padding-bottom: 120px;
}

.mypage_profile .profile {
  width: 128px;
  height: 128px;
  margin-top: 2px;
  margin-right: 40px;
  border-radius: 50%;
  border: solid 1px rgba(0, 0, 0, 0.1);
  box-sizing: border-box;
}

.user_profile h2 {
  font-size: 27px;
  font-weight: bold;
  color: #000;
}

.user_profile p {
  padding-top: 16px;
  font-size: 14px;
  line-height: 1.43;
  color: #4c545f;
}

.user_info_list {
  display: flex;
  padding-top: 24px;
}

.user_info_list li {
  font-size: 17px;
  font-weight: 500;
  color: #6c737e;
}

.user_info_list li + li {
  padding-left: 32px;
}

.user_btn {
  padding-top: 24px;
  display: flex;
  align-items: center;
}

.user_btn span {
  position: relative;
  height: 48px;
  padding: 0 24px;
  border-radius: 24px;
  border: solid 1px #dce1e5;
  background-color: #fff;
  cursor: pointer;
  box-sizing: border-box;
}

.user_btn span.edit_profile {
  font-size: 17px;
  font-weight: 500;
  color: #6c737e;
  line-height: 46px;
}

.user_btn span.profile_more {
  margin-left: 16px;
}

.user_btn span.profile_more img {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

.mypage_tab_nav {
  position: relative;
  display: flex;
  padding-bottom: 15px;
}

.mypage_tab_nav li {
  height: 40px;
  padding: 0 20px;
  font-size: 12px;
  font-weight: 500;
  line-height: 40px;
  color: #6c737e;
  border-radius: 20px;
  cursor: pointer;
  background-color: #f6f8fc;
  box-sizing: border-box;
}

.mypage_tab_nav li + li {
  margin-left: 8px;
}

.mypage_tab_nav li.on {
  background-color: #000;
  color: #fff;
}

.mypage_tab {
  display: none;
  position: relative;
  padding-top: 56px;
  border-top: 1px solid #dce1e5;
}

.mypage_tab > h2 {
  padding-bottom: 54px;
  font-size: 21px;
  font-weight: bold;
  color: #000;
}

.form_item2 {
  margin-bottom: 54px;
}

.form_item2 h3 {
  padding-bottom: 16px;
  font-size: 14px;
  font-weight: 500;
  color: #4c545f;
}

.mypage_tab.about .empty p a {
  font-size: 14px;
  line-height: 1.43;
  color: #89919b;
}

.mypage_tab.about .value p {
  font-size: 14px;
  line-height: 1.43;
  color: #4c545f;
}

.sns_list li img {
  margin-right: 12px;
}

.sns_list li a {
  display: flex;
  align-items: center;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.43;
  color: #000;
}

.sns_list li + li {
  margin-top: 24px;
}

.mypage_sub_nav {
  display: flex;
  padding-bottom: 56px;
}

.mypage_sub_nav li {
  font-size: 17px;
  font-weight: bold;
  color: #abb2ba;
  cursor: pointer;
}

.mypage_sub_nav li + li {
  margin-left: 24px;
}

.mypage_sub_nav li.on {
  color: #000;
}

.my_annotations_box .musical_staff_card2 {
  width: 100%;
  margin-bottom: 80px;
}

.mypage_tab .musical_staff.mini {
  width: 100%;
  height: 144px;
}

.my_collection .search_wrap {
  position: absolute;
  right: 0;
  top: 44px;
  background: transparent;
}

.my_collection .search_box {
  width: 480px;
  height: 48px;
  padding-left: 45px;
  border-radius: 24px;
  background-color: #fff;
  border: solid 1px #e8ecef;
}

.my_collection .search_box .ico_search {
  width: 20px;
  height: 20px;
  left: 16px;
  background-size: cover;
}

.my_collection .search_box input {
  font-size: 14px;
}

.my_collection .thum_card .thum {
  height: 272px;
  border-radius: 12px;
  border: solid 1px rgba(0, 0, 0, 0.1);
  background-color: #f6f8fc;
}

.my_collection .thum_card .desc {
  padding-top: 19px;
}

.my_collection .thum_card .desc h3 {
  padding-bottom: 3px;
}

.my_collection .thum_card li {
  padding-top: 6px;
  font-size: 14px;
  color: #4c545f;
}

.my_collection .thum_card_list .thum_card {
  margin-right: 31px;
  margin-bottom: 56px;
}

.my_collection .thum_card_list .thum_card:nth-child(3n) {
  margin-right: 0;
}

.history_box {
  padding-bottom: 24px;
}

.history_box > h2 {
  padding-bottom: 24px;
  font-size: 17px;
  font-weight: 500;
  color: #000;
}

.history_box .form_item2 {
  margin-bottom: 32px;
}

.history_box .form_item2 h3 {
  font-weight: normal;
}

.follow_box {
  height: 104px;
  padding: 0 24px;
  margin-bottom: 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-radius: 12px;
  border: solid 1px #dce1e5;
  background-color: #fff;
  box-sizing: border-box;
}

.follow_box .profile {
  width: 56px;
  height: 56px;
}

.follow_box .btn_follow {
  height: 40px;
  padding: 0 24px;
  line-height: 40px;
  font-size: 14px;
  font-weight: 500;
  color: #6c737e;
  border-radius: 24px;
  border: solid 1px #dce1e5;
  background-color: #fff;
  cursor: pointer;
  box-sizing: border-box;
}

.follow_box .btn_follow.on {
  color: #fff;
  background-color: #000;
}

.mypage_edit h2 {
  padding-bottom: 80px;
  text-align: center;
  font-size: 27px;
  font-weight: bold;
  color: #000;
}

.edit_box + .edit_box {
  padding-top: 64px;
}

.edit_box h2 {
  padding-bottom: 32px;
  font-size: 21px;
  font-weight: bold;
  text-align: left;
  color: #000;
}

.edit_profile {
  padding-bottom: 6px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.edit_profile .profile {
  width: 128px;
  height: 128px;
  margin-bottom: 14px;
  border: solid 1px rgba(0, 0, 0, 0.1);
  border-radius: 50%;
  box-sizing: border-box;
}

.edit_img {
  font-size: 14px;
  text-align: center;
  color: #4c545f;
  text-decoration: underline;
  cursor: pointer;
}

.edit_form .form_item h3 {
  padding-bottom: 12px;
}

.edit_form > .form_item {
  padding-top: 0;
  padding-bottom: 24px;
}

.edit_form .flex_item {
  padding-bottom: 24px;
}

.edit_form .flex_item .form_item {
  width: calc(50% - 8px);
}

.edit_form .flex_item .form_item + .form_item {
  margin-left: 16px;
}

.edit_btn {
  text-align: right;
}

.edit_btn button {
  display: inline-block;
  width: 154px;
  height: 40px;
  border-radius: 20px;
}

.form_text {
  padding-top: 8px;
  font-size: 14px;
  color: #6c737e;
}

.mypage_edit button.last {
  margin-top: 16px;
}

.alert {
  position: fixed;
  left: 0;
  right: 0;
  margin: auto;
  top: 8px;
  text-align: center;
  width: calc(100% - 16px);
  border-radius: 8px;
  background-color: #dce1e5;
  box-sizing: border-box;
}

.alert p {
  padding: 24px 0;
  font-size: 14px;
  font-weight: 500;
  color: #000;
}

.secession_pop {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 101;
}

.secession_pop .bg {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.4);
}

.secession_pop .pop_cont {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 544px;
  padding: 48px 32px 32px;
  border-radius: 12px;
  box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.1);
  border: solid 1px #dce1e5;
  background-color: #fff;
  box-sizing: border-box;
}

.secession_pop h2 {
  padding-bottom: 36px;
  text-align: center;
  font-size: 27px;
  font-weight: bold;
  color: #000;
}

.secession_pop h2 img {
  display: block;
  margin: 0 auto 16px;
}

.secession_pop textarea {
  height: 120px;
  padding: 12px;
  font-size: 14px;
  line-height: 1.71;
  color: #000;
  border-radius: 8px;
  border: solid 1px #e8ecef;
  background-color: #fff;
  box-sizing: border-box;
}

.agree_radio {
  padding-top: 14px;
  padding-bottom: 16px;
}

.secession_pop .form_item {
  padding-top: 0;
  padding-bottom: 24px;
}

.secession_pop .radio {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 0;
}

.secession_pop .radio_label {
  position: relative;
  display: block;
  font-size: 14px;
  color: #6c737e;
  padding-left: 32px;
  line-height: 1.4;
  cursor: pointer;
  box-sizing: border-box;
}

.secession_pop .radio_label::before {
  content: '';
  position: absolute;
  left: -2px;
  top: -4px;
  width: 24px;
  height: 24px;
  background: url('/images/icons/ico_radio2.svg') center no-repeat;
  box-sizing: border-box;
}

.secession_pop input[type='checkbox']:checked + label::before {
  background: url('/images/icons/ico_radio_on2.svg') center no-repeat;
}

.secession_pop .feed_btn_list {
  padding: 64px 0 0;
}

.mypage.others {
  width: 1248px;
}

.page_not_found {
  width: 100%;
  height: 100%;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-color: #f6f8fc;
}

.page_not_found img {
  padding-bottom: 80px;
}

.page_not_found h2 {
  padding-bottom: 24px;
  font-size: 48px;
  font-weight: bold;
  color: #000;
}

.page_not_found p {
  font-size: 16px;
  color: #6c737e;
}

.page_not_found button {
  display: block;
  margin: 80px auto 0;
  width: 224px;
}

.popup.etc_pop .pop_cont {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 1000;
  width: 480px;
  min-height: 186px;
  padding: 15px 24px 24px 24px;
  border-radius: 12px;
  box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.1);
  border: solid 1px #dce1e5;
  background-color: #fff;
  box-sizing: border-box;
}

.popup.confirm .pop_cont {
  padding-bottom: 72px;
}

.popup.etc_pop .tit {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 28px;
}

.popup.confirm .tit {
  padding-bottom: 12px;
}

.popup.etc_pop .tit h2 {
  font-size: 17px;
  font-weight: bold;
  color: #000;
}

.popup.etc_pop .tit .close {
  cursor: pointer;
  margin-right: -9px;
}

.popup.etc_pop .tit .close img {
  width: 20px;
}

.popup.confirm .pop_cont .tit {
  padding-top: 10px;
}

.popup.confirm .pop_cont .tit h2 {
  font-size: 15px;
  font-weight: 500;
  color: #000;
}

.pop_btn_list {
  position: absolute;
  bottom: 0;
  left: 0;
  display: flex;
  justify-content: flex-end;
  width: 100%;
  padding: 16px;
  box-sizing: border-box;
}

.pop_btn_list button {
  width: 104px;
  height: 40px;
  border-radius: 28px;
}

.pop_btn_list button + button {
  margin-left: 8px;
}

.pop_sns {
  padding-bottom: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.pop_sns li {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  border: solid 1.4px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  box-sizing: border-box;
}

.pop_sns li + li {
  margin-left: 16px;
}

.etc_pop .input_submit {
  width: 56px;
  height: 36px;
  border-radius: 20px;
  background-color: #000;
}

.popup.loading .pop_cont {
  width: 240px;
  height: 208px;
  padding: 48px 0;
  border-radius: 12px;
  text-align: center;
  box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.1);
  border: solid 1px #dce1e5;
  background-color: #fff;
  box-sizing: border-box;
}

.ico_loading {
  width: 80px;
  height: 80px;
  margin: auto;
}

.popup.loading p {
  padding-top: 14px;
  font-size: 15px;
  font-weight: 500;
  text-align: center;
  color: #000;
}

.popup.loading2 .pop_cont {
  width: 480px;
  min-height: 130px;
  padding: 48px 40px 42px;
  border-radius: 12px;
  box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.1);
  border: solid 1px #dce1e5;
  background-color: #fff;
  box-sizing: border-box;
}

.loading_text {
  display: flex;
  justify-content: space-between;
  padding-bottom: 14px;
}

.popup.loading2 .text {
  display: block;
  font-size: 15px;
  font-weight: 500;
  color: #000;
}

.popup.loading2 .percent {
  font-size: 15px;
  font-weight: 500;
  text-align: right;
  color: #000;
}

.loading_progress {
  position: relative;
  width: 100%;
  height: 8px;
  border-radius: 100px;
  background-color: #e8ecef;
  overflow: hidden;
  box-sizing: border-box;
}

.loading_progress .inner {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  background: linear-gradient(
    to right,
    #d51536,
    #d51536 10%,
    #ff7127 20%,
    #f5ba00 30%,
    #7ac41c 40%,
    #20bce0 50%,
    #2089e0 60%,
    #3f3f9b 70%,
    #a846d1 80%,
    #d51536 90%,
    #d51536
  );
  overflow: hidden;
  animation: progressAnimation 6s;
}

@keyframes progressAnimation {
  0% {
    width: 5%;
  }
  100% {
    width: 90%;
  }
}

.mypage.terms {
  width: 992px;
}

.mypage.terms h2 {
  padding-bottom: 24px;
  font-size: 48px;
  font-weight: bold;
  text-align: center;
  color: #000;
}

.mypage.terms > p {
  padding-bottom: 40px;
  font-size: 16px;
  text-align: center;
  color: #000;
}

.terms_box {
  padding-top: 80px;
}

.terms_box h3 {
  padding-bottom: 24px;
  font-size: 16px;
  font-weight: bold;
  color: #000;
}

.terms_box p {
  font-size: 16px;
  line-height: 1.5;
  color: #4c545f;
}

.terms_box.terms_agreement {
  background-color: #f9f9f9;
  padding: 24px;
  border-radius: 8px;
  margin-top: 40px;
  border: 2px solid #e0e0e0;
}

.terms_box.terms_agreement h3 {
  color: #000;
  margin-bottom: 16px;
}

.agreement_item {
  margin-bottom: 12px;
}

.checkbox_label {
  display: flex;
  align-items: flex-start;
  cursor: pointer;
  user-select: none;
}

.agreement_checkbox {
  width: 20px;
  height: 20px;
  min-width: 20px;
  margin-right: 12px;
  margin-top: 2px;
  cursor: pointer;
}

.checkbox_text {
  font-size: 15px;
  line-height: 1.6;
  color: #333;
}

.checkbox_text strong {
  color: #f44336;
  font-weight: 600;
}

.agreement_notice {
  font-size: 14px;
  margin-top: 10px;
}

.popup.toast .pop_cont {
  top: 33px;
  transform: translateY(0) translateX(-50%);
  min-height: 72px;
  display: flex;
  align-items: center;
  padding: 0 24px;
  z-index: 1000;
}

.popup.toast .ico_loading {
  width: 24px;
  height: 24px;
  margin: 0;
}

.popup.toast p {
  padding-left: 12px;
  font-size: 15px;
  font-weight: 500;
  color: #000;
}

.popup.toast button {
  position: absolute;
  right: 16px;
  top: 16px;
  width: 104px;
  height: 40px;
  border-radius: 28px;
}

@media screen and (max-width: 1320px) {
  .staff_swiper_wrap .swiper_next {
    right: -32px;
  }

  .staff_swiper_wrap .swiper_prev {
    left: -32px;
  }
}

@media screen and (max-width: 1080px) {
  .signup_wrap {
    display: block;
  }

  .signup_banner {
    width: 100%;
    height: 400px;
    padding: 40px 80px;
  }

  .signup_banner h1 {
    left: 40px;
    top: 40px;
  }

  .signup_form {
    width: 100%;
    padding: 40px 20px 50px;
    height: auto;
    box-sizing: border-box;
  }
}

@media screen and (max-width: 790px) {
  .signup_banner {
    padding: 20px 30px;
    height: 350px;
  }

  .signup_banner h1 {
    left: 20px;
    top: 20px;
  }

  .signup_text h2 {
    font-size: 30px;
  }

  .signup_text p {
    padding-top: 8px;
    font-size: 14px;
  }

  .signup_form_box {
    max-width: 500px;
    width: 95%;
  }

  .signup_form_box h2 {
    padding-bottom: 16px;
    font-size: 30px;
  }

  .signup_form_box > p {
    font-size: 13px;
  }

  .signup_form_box > p a {
    margin-left: 4px;
    font-size: 13px;
  }

  .login_select_list {
    padding-top: 40px;
  }

  .login_select {
    height: 40px;
    padding: 10px;
    margin-bottom: 8px;
    font-size: 13px;
    background-position: 8px 50%;
    background-size: 20px;
  }

  .login_select_list .or {
    padding-bottom: 8px;
    font-size: 13px;
  }

  .login_select_list button {
    height: 40px;
  }

  .login_select_list p {
    padding-top: 14px;
  }

  .join_wrap {
    padding: 60px 0 40px;
  }

  .join_wrap .close {
    right: 20px;
    top: 15px;
  }

  .join_wrap h2 {
    padding-bottom: 20px;
    font-size: 20px;
  }

  .join_wrap h2 img {
    padding-bottom: 20px;
  }

  .join {
    padding: 0 20px;
  }

  .form_item .psw_link {
    top: 26px;
    font-size: 11px;
  }

  .signup_form .close {
    right: 10px;
    top: 10px;
  }

  .join {
    width: 95%;
    max-width: 480px;
  }
}


/* 
===========================================================
2025.09.23
- Music Chart & How it works section styles
- ai-studio css
===========================================================
*/

/* Music Chart Section */
.music_chart {
  /* background-color: #f8f9fa; */
  padding: 40px 0;
  margin: 64px 0;
  border-radius: 20px;
}

.music_chart .chart_header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 32px;
  /* padding: 0 40px; */
}

.music_chart .chart_title {
  display: flex;
  align-items: center;
  gap: 12px;
}

.music_chart .chart_title .icon {
  width: 24px;
  height: 24px;
  background: #666;
  border-radius: 4px;
}

.music_chart .chart_title h2 {
  font-size: 27px;
  font-weight: bold;
  /* font-size: 24px;
  font-weight: bold; */
  color: #333;
  margin: 0;
}

.music_chart .more_link {
  color: #999;
  text-decoration: none;
  font-size: 14px;
}

.music_chart .chart_tabs {
  display: flex;
  gap: 16px;
  margin-bottom: 24px;
  /* padding: 0 40px; */
}

.music_chart .chart_tab {
  padding: 8px 16px;
  border-radius: 20px;
  background: #e9ecef;
  color: #666;
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
  transition: all 0.3s ease;
}

.music_chart .chart_tab.active {
  background: #495057;
  color: #fff;
}

.music_chart .chart_list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  /* padding: 0 40px; */
}

.music_chart .chart_item {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px;
  background: #fff;
  border-radius: 12px;
  transition: all 0.3s ease;
  text-decoration: none;
  color: inherit;
  max-width: 560px;
  min-width: 560px;
}

.music_chart .chart_item:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}

.music_chart .rank_number {
  font-size: 18px;
  font-weight: bold;
  color: #333;
  min-width: 24px;
  text-align: center;
}

.music_chart .rank_change {
  font-size: 12px;
  color: #ff4757;
  font-weight: bold;
  min-width: 12px;
}

.music_chart .rank_change.new {
  color: #ff4757;
}

.music_chart .rank_change.up {
  color: #2ed573;
}

.music_chart .rank_change.down {
  color: #ff4757;
}

.music_chart .album_cover {
  width: 60px;
  height: 60px;
  border-radius: 8px;
  overflow: hidden;
  flex-shrink: 0;
}

.music_chart .album_cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.music_chart .track_info {
  flex: 1;
  min-width: 0;
}

.music_chart .track_title {
  font-size: 12px;
  font-weight: 600;
  color: #333;
  margin-bottom: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.music_chart .track_meta {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: #666;
  margin-bottom: 4px;
}

.music_chart .track_genre {
  background: #e9ecef;
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 11px;
  color: #666;
}

.music_chart .track_price {
  font-size: 12px;
  font-weight: bold;
  color: #2b7ce9;
  text-align: right;
  min-width: 80px;
}

/* Notice Popup */
.notice_popup {
  display: none;
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 1400;
}

.notice_popup.on {
  display: block;
}

.notice_popup .bg {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  background-color: rgba(0, 0, 0, 0.5);
}

.notice_popup .pop_cont {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 90%;
  max-width: 800px;
  max-height: 80vh;
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
}

.notice_popup .notice_header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 32px;
  border-bottom: 1px solid #e9ecef;
  background: #fff;
  position: sticky;
  top: 0;
  z-index: 10;
}

.notice_popup .notice_header h2 {
  font-size: 20px;
  font-weight: bold;
  color: #333;
  margin: 0;
}

.notice_popup .close_btn {
  font-size: 14px;
  color: #666;
  cursor: pointer;
  padding: 8px 16px;
  border-radius: 8px;
  transition: all 0.3s ease;
}

.notice_popup .close_btn:hover {
  background: #f8f9fa;
  color: #333;
}

.notice_popup .notice_list {
  padding: 24px 32px;
  max-height: calc(80vh - 80px);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.notice_popup .notice_item {
  display: block;
  padding: 20px;
  background: #f8f9fa;
  border: 1px solid #e9ecef;
  border-radius: 12px;
  text-decoration: none;
  transition: all 0.3s ease;
  position: relative;
}

.notice_popup .notice_item:hover {
  border-color: #495057;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  background: #fff;
}

.notice_popup .notice_item.hidden {
  display: none;
}

.notice_popup .notice_badge {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 600;
  background: #e9ecef;
  color: #666;
  margin-bottom: 12px;
}

.notice_popup .notice_badge.new {
  background: #ff4757;
  color: #fff;
}

.notice_popup .notice_title {
  font-size: 16px;
  font-weight: 600;
  color: #333;
  margin: 0 0 8px 0;
}

.notice_popup .notice_desc {
  font-size: 14px;
  line-height: 1.6;
  color: #666;
  margin: 0 0 12px 0;
}

.notice_popup .notice_date {
  font-size: 12px;
  color: #999;
  display: block;
}

.notice_popup .notice_footer {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #e9ecef;
}

.notice_popup .do_not_show_again {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: #666;
  cursor: pointer;
  user-select: none;
}

.notice_popup .do_not_show_again input[type="checkbox"] {
  cursor: pointer;
  width: 16px;
  height: 16px;
  accent-color: #333;
}

.notice_popup .do_not_show_again:hover {
  color: #333;
}

.notice_popup .notice_empty {
  text-align: center;
  padding: 60px 20px;
  color: #999;
  font-size: 14px;
}

/* How it works section */
.how_it_works {
  background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 50%, #f1f3f5 100%);
  color: #333;
  padding: 100px 0;
  margin: 0;
  position: relative;
  width: 100%;
}

.how_it_works::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, #e8ecef 20%, #e8ecef 80%, transparent 100%);
}

.how_it_works::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, #e8ecef 20%, #e8ecef 80%, transparent 100%);
}

.how_it_works .inner {
  max-width: 1312px;
  margin: 0 auto;
  padding: 0 64px;
  box-sizing: border-box;
  display: flex;
  gap: 80px;
  align-items: flex-start;
}

.how_it_works .sticky_left {
  flex: 0 0 40%;
  position: sticky;
  top: 120px;
}

.how_it_works .sticky_left h2 {
  font-size: 48px;
  font-weight: 700;
  margin-bottom: 24px;
  color: #000;
  line-height: 1.2;
}

.how_it_works .sticky_left .description {
  font-size: 16px;
  line-height: 1.6;
  color: #666;
  margin-bottom: 32px;
}

.how_it_works .cta_wrapper {
  margin-top: 32px;
}

.how_it_works .steps_right {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.how_it_works .step_card {
  background-color: #fff;
  border: 1px solid #e8ecef;
  border-radius: 16px;
  padding: 32px;
  box-sizing: border-box;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  transition: all 0.3s ease;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}

.how_it_works .step_card::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.02), transparent);
  transition: left 0.5s ease;
}

.how_it_works .step_card:hover::before {
  left: 100%;
}

.how_it_works .step_card:hover {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
  transform: translateY(-4px);
  border-color: #000;
}

.how_it_works .step_card:active {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}

.how_it_works .step_number {
  font-size: 64px;
  font-weight: 700;
  color: rgba(0, 0, 0, 0.05);
  line-height: 1;
  margin: -8px 0 0 0;
  transition: all 0.3s ease;
}

.how_it_works .step_card:hover .step_number {
  color: rgba(0, 0, 0, 0.1);
}

.how_it_works .step_card h3 {
  font-size: 20px;
  font-weight: 600;
  color: #000;
  margin: 0 0 12px 0;
  line-height: 1.4;
  transition: color 0.3s ease;
}

.how_it_works .step_card p {
  font-size: 14px;
  color: #666;
  margin: 0;
  line-height: 1.6;
  transition: color 0.3s ease;
}

.how_it_works .step_card:hover p {
  color: #333;
}

.how_it_works .cta_button {
  background-color: #000;
  color: #fff;
  padding: 16px 32px;
  border-radius: 25px;
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
  display: inline-block;
  transition: all 0.3s ease;
  border: 2px solid #000;
}

.how_it_works .cta_button:hover {
  background-color: #fff;
  color: #000;
}

/* Annotated Sheet Music Section */
.annotated_section {
  padding: 64px 0;
}

.annotated_section .section_header {
  margin-bottom: 48px;
}

.annotated_section .section_header h2 {
  font-size: 27px;
  font-weight: bold;
  color: #000;
  margin: 0 0 8px 0;
}

.annotated_section .section_subtitle {
  font-size: 14px;
  color: #666;
  margin: 0;
}

.annotated_grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 32px;
}

.annotated_card {
  position: relative;
  background-color: #fff;
  border: 1px solid #e8ecef;
  border-radius: 12px;
  overflow: hidden;
  transition: all 0.3s ease;
}

.annotated_card > a {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
}

.annotated_card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
  border-color: #000;
}

.annotated_thumbnail {
  position: relative;
  width: 100%;
  height: 240px;
  overflow: hidden;
  background-color: #f6f8fc;
}

.annotated_thumbnail img {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.annotated_card:hover .annotated_thumbnail img {
  transform: translate(-50%, -50%) scale(1.05);
}

.annotated_overlay {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.annotated_card:hover .annotated_overlay {
  opacity: 1;
}

.annotated_overlay .view_detail {
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  padding: 10px 20px;
  border: 2px solid #fff;
  border-radius: 20px;
  transition: all 0.3s ease;
}

.annotated_card:hover .view_detail {
  background-color: #fff;
  color: #000;
}

.annotated_content {
  padding: 20px;
}

.annotated_content h3 {
  font-size: 16px;
  font-weight: 600;
  color: #000;
  margin: 0 0 8px 0;
  line-height: 1.4;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.annotated_description {
  font-size: 14px;
  color: #666;
  line-height: 1.5;
  margin: 0 0 16px 0;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.annotated_meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 12px;
  border-top: 1px solid #f0f0f0;
}

.annotated_tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.annotated_tags .tag {
  padding: 4px 12px;
  font-size: 11px;
  font-weight: 500;
  border-radius: 12px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.annotated_tags .tag.ai {
  background-color: #e7f3ff;
  color: #0066cc;
}

.annotated_tags .tag.user {
  background-color: #f0f0f0;
  color: #666;
}

.annotated_stats {
  display: flex;
  align-items: center;
  gap: 12px;
}

.annotated_stats .stat {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  color: #666;
}

.annotated_stats .stat_icon {
  width: 16px;
  height: 16px;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}

.annotated_stats .stat.comments .stat_icon {
  background-image: url('/images/icons/ico_reply.svg');
}

.annotated_stats .stat.likes .stat_icon {
  background-image: url('/images/icons/ico_like.svg');
}

/* AI Musican Section */

/* AI Studio Page Styles */
.ai_studio_container {
  padding: 112px 0 32px;
  background: linear-gradient(135deg, #000000 0%, #1a1a1a 50%, #0d0d0d 100%);
  min-height: 100vh;
  color: #fff;
  font-family: 'Roboto', sans-serif;
}

.ai_studio_sidebar {
  position: fixed;
  left: 0;
  top: 0;
  width: 250px;
  height: 100vh;
  background: rgba(0, 0, 0, 0.3);
  padding: 112px 20px 140px 20px; /* Top, right, bottom, left - adjusted for credit section */
  box-sizing: border-box;
  z-index: 5;
}

.ai_studio_sidebar .sidebar_item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  margin-bottom: 8px;
  border-radius: 8px;
  color: rgba(255, 255, 255, 0.7);
  text-decoration: none;
  transition: all 0.3s ease;
}

.ai_studio_sidebar .sidebar_item:hover,
.ai_studio_sidebar .sidebar_item.active {
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
}

.ai_studio_sidebar .sidebar_icon {
  width: 32px;
  height: 32px;
  color:#fff;
  /*  icon 정중앙 */
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
}

.ai_studio_main {
  margin-left: 250px;
  padding: 40px;
  min-height: 100vh;
}

/* Pricing Page Styles */
.pricing_container {
  padding: 112px 0 32px;
  background: #ffffff;
  min-height: 64vh;
  color: #000;
  font-family: 'Roboto', sans-serif;
}

.pricing_main {
  padding: 40px;
  min-height: 52vh;
  max-width: 1400px;
  margin: 0 auto;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

.ai_studio_header {
  text-align: center;
  margin-bottom: 60px;
}

.ai_studio_header h1 {
  font-size: 48px;
  font-weight: 700;
  margin-bottom: 16px;
  background: linear-gradient(45deg, #fff, #a8b3cf);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.ai_studio_header p {
  font-size: 18px;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 40px;
}

.ai_studio_upload_section {
  display: flex;
  gap: 40px;
  margin-bottom: 30px;
  justify-content: center;
}

.upload_button {
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 16px 0;
  color: #fff;
  text-decoration: none;
  transition: all 0.3s ease;
  font-weight: 500;
  font-size: 16px;
  position: relative;
}

.upload_button:hover {
  color: #fff;
}

.upload_button.active {
  color: #fff;
  border-bottom: 2px solid #fff;
}

.explore_button {
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 16px 0;
  color: rgba(255, 255, 255, 0.6);
  text-decoration: none;
  transition: all 0.3s ease;
  font-weight: 500;
  font-size: 16px;
}

.explore_button:hover {
  color: rgba(255, 255, 255, 0.8);
}

.explore_button.active {
  color: #fff;
  border-bottom: 2px solid #fff;
}

.ai_upload_preview {
  background: rgba(255, 255, 255, 0.05);
  border-radius: 16px;
  padding: 24px;
  margin-bottom: 60px;
  max-width: 500px;
  margin-left: auto;
  margin-right: auto;
}

.upload_preview_content {
  background: #fff;
  border-radius: 12px;
  padding: 20px;
  color: #333;
  font-size: 14px;
  line-height: 1.6;
}

.ensemble_categories {
  margin-bottom: 60px;
}

.ensemble_grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  max-width: 1200px;
  margin: 0 auto;
}

.ensemble_card {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  aspect-ratio: 1;
  cursor: pointer;
  transition: all 0.3s ease;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
}

.ensemble_card:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
}

.ensemble_card.active {
  transform: translateY(-8px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
  border: 2px solid rgba(255, 255, 255, 0.3);
}

.ensemble_card.piano_solo {
  background: linear-gradient(135deg, rgba(255, 110, 199, 0.15), rgba(255, 154, 158, 0.15)), url('https://images.unsplash.com/photo-1520523839897-bd0b52f945a0?w=300&h=300&fit=crop&crop=center');
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  background-color: #ff6ec7;
}

.ensemble_card.duet {
  background: linear-gradient(135deg, rgba(74, 144, 226, 0.15), rgba(58, 123, 213, 0.15)), url('https://images.unsplash.com/photo-1702255104472-b52f79a9181e?w=300&h=300&fit=crop&crop=center');
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  background-color: #4A90E2;
}

.ensemble_card.trio {
  background: linear-gradient(135deg, rgba(76, 175, 80, 0.15), rgba(56, 142, 60, 0.15)), url('https://images.unsplash.com/photo-1634027593002-f0b652051278?w=300&h=300&fit=crop&crop=center');
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  background-color: #4CAF50;
}

.ensemble_card.quartet {
  background: linear-gradient(135deg, rgba(156, 39, 176, 0.15), rgba(123, 31, 162, 0.15)), url('https://plus.unsplash.com/premium_photo-1703618157206-3568d94cc168?w=300&h=300&fit=crop&crop=center');
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  background-color: #9C27B0;
}

.ensemble_card_content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 16px;
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.8));
}

.ensemble_card h3 {
  font-size: 16px;
  font-weight: 600;
  color: #fff;
  margin: 0;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
}

.ensemble_card_label {
  position: absolute;
  bottom: 16px;
  left: 0;
  right: 0;
  text-align: center;
  font-size: 25px;
  font-weight: 600;
  color: #fff;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
}

.featured_section {
  margin-bottom: 60px;
}

.featured_header {
  background: linear-gradient(135deg, #ff6ec7, #ff9a9e);
  border-radius: 20px;
  padding: 40px;
  text-align: left;
  margin-bottom: 40px;
  transition: background 0.3s ease;
}

.featured_header.piano_solo {
  background: linear-gradient(135deg, rgba(255, 110, 199, 0.8), rgba(255, 154, 158, 0.8));
}

.featured_header.duet {
  background: linear-gradient(135deg, rgba(74, 144, 226, 0.8), rgba(58, 123, 213, 0.8));
}

.featured_header.trio {
  background: linear-gradient(135deg, rgba(76, 175, 80, 0.8), rgba(56, 142, 60, 0.8));
}

.featured_header.quartet {
  background: linear-gradient(135deg, rgba(156, 39, 176, 0.8), rgba(123, 31, 162, 0.8));
}

.featured_header h2 {
  font-size: 36px;
  font-weight: 300;
  margin: 0;
  color: #fff;
}

.featured_description {
  font-size: 16px;
  color: rgba(255, 255, 255, 0.8);
  max-width: 800px;
  margin: 20px 0 40px 0;
  line-height: 1.6;
  text-align: left;
}

.create_button {
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
  border: none;
  padding: 12px 24px;
  border-radius: 25px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.3s ease;
}

.create_button:hover {
  background: rgba(255, 255, 255, 0.3);
}

.track_list {
  background: rgba(0, 0, 0, 0.2);
  border-radius: 16px;
  padding: 24px;
}

.track_item {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  transition: all 0.3s ease;
}

.track_item:last-child {
  border-bottom: none;
}

.track_item:hover {
  background: rgba(255, 255, 255, 0.05);
  border-radius: 8px;
  padding: 12px 16px;
  margin: 0 -16px;
}

.track_album_art {
  width: 50px;
  height: 50px;
  border-radius: 8px;
  background: #333;
  flex-shrink: 0;
}

.track_waveform {
  flex: 1;
  height: 40px;
  background: linear-gradient(90deg, 
    rgba(255, 255, 255, 0.3) 0%, 
    rgba(255, 255, 255, 0.6) 20%, 
    rgba(255, 255, 255, 0.8) 40%, 
    rgba(255, 255, 255, 0.6) 60%, 
    rgba(255, 255, 255, 0.3) 80%, 
    rgba(255, 255, 255, 0.1) 100%);
  border-radius: 4px;
  position: relative;
  overflow: hidden;
}

.track_waveform::after {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 2px;
  background: #fff;
  animation: waveProgress 3s infinite ease-in-out;
}

@keyframes waveProgress {
  0% { left: 0; }
  100% { left: calc(100% - 2px); }
}

.track_duration {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.6);
  min-width: 40px;
}

.track_info_text {
  min-width: 120px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.7);
}

.track_info_text .track_title {
  font-weight: 600;
  color: #fff;
  margin-bottom: 4px;
}

.track_actions {
  display: flex;
  gap: 8px;
}

.track_action_btn {
  width: 32px;
  height: 32px;
  border: none;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 6px;
  color: #fff;
  cursor: pointer;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.track_action_btn:hover {
  background: rgba(255, 255, 255, 0.2);
}

/* Responsive adjustments */
@media (max-width: 1200px) {
  .ai_studio_main {
    margin-left: 0;
    padding: 20px;
  }

  .pricing_main {
    padding: 20px;
  }

  .ai_studio_sidebar {
    transform: translateX(-100%);
  }

  .ensemble_grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* AI Studio Modal Styles */
.ai_modal_container {
  background: rgba(255, 255, 255, 0.98);
  border-radius: 16px;
  padding: 28px;
  max-width: 700px;
  margin: 0 auto;
  color: #333;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
}

.modal_title {
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 24px;
  padding-bottom: 12px;
  color: #333;
  position: relative;
  display: inline-block;
  border-bottom: 2px solid #e0e0e0;
}

.upload_zone {
  border: 2px dashed #ccc;
  border-radius: 8px;
  padding: 32px 20px;
  text-align: center;
  background: #fafafa;
  margin-bottom: 20px;
  transition: all 0.3s ease;
  cursor: pointer;
}

.upload_zone:hover {
  border-color: #007bff;
  background: #f8f9fa;
}

.upload_icon {
  width: 48px;
  height: 48px;
  background: #e9ecef;
  border-radius: 50%;
  margin: 0 auto 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.upload_text {
  font-size: 16px;
  color: #666;
  margin-bottom: 8px;
}

.upload_subtext {
  font-size: 14px;
  color: #999;
}

.form_group {
  margin-bottom: 20px;
}

/* Form Card */
.form_card {
  background: #fff;
  border: 1px solid #e9ecef;
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 20px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
  transition: all 0.3s ease;
}

.form_card:hover {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  border-color: #dee2e6;
}

.form_card .part_tags {
  margin-bottom: 0;
}

.form_card .ensemble_tags {
  margin-bottom: 0;
}

.form_card .upload_zone {
  margin-bottom: 0;
}

.form_card .creativity_section {
  margin-bottom: 0;
}

.form_card .additional_requests {
  margin-bottom: 0;
}

.form_card .explore_search_section {
  margin-bottom: 0;
}

.card_section_title {
  font-size: 16px;
  font-weight: 600;
  color: #333;
  margin-bottom: 16px;
  margin-top: 0;
}

.form_label {
  display: block;
  font-size: 16px;
  font-weight: 600;
  color: #333;
  margin-bottom: 12px;
}

.form_select {
  width: 100%;
  padding: 12px 16px;
  border: 1px solid #ddd;
  border-radius: 8px;
  font-size: 14px;
  background: #fff;
  color: #333;
}

.creativity_section {
  margin-bottom: 20px;
}

.creativity_header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
}

.creativity_icon {
  width: 20px;
  height: 20px;
  background: linear-gradient(45deg, #e056fd, #f093fb);
  border-radius: 4px;
}

.creativity_title {
  font-size: 14px;
  font-weight: 500;
  color: #333;
}

.creativity_percentage {
  font-size: 14px;
  color: #666;
  margin-left: auto;
}

/* Preset Tags */
.creativity_presets {
  display: flex;
  gap: 8px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}

.preset_tag {
  padding: 8px 16px;
  border: 1px solid #ddd;
  border-radius: 20px;
  background: #fff;
  color: #666;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
}

.preset_tag:hover {
  border-color: #333;
  color: #333;
}

.preset_tag.active {
  background: linear-gradient(45deg, #e056fd, #f093fb);
  color: #fff;
  border-color: transparent;
}

/* Part Tags */
.part_tags {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 20px;
}

.part_tag {
  padding: 8px 16px;
  border: 1px solid #ddd;
  border-radius: 20px;
  background: #fff;
  color: #666;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
}

.part_tag:hover {
  border-color: #333;
  color: #333;
}

.part_tag.active {
  background: linear-gradient(45deg, #e056fd, #f093fb);
  color: #fff;
  border-color: transparent;
}

/* Ensemble Tags */
.ensemble_tags {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 20px;
}

.ensemble_tag {
  padding: 8px 16px;
  border: 1px solid #ddd;
  border-radius: 20px;
  background: #fff;
  color: #666;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
}

.ensemble_tag:hover {
  border-color: #333;
  color: #333;
}

.ensemble_tag.active {
  background: linear-gradient(45deg, #e056fd, #f093fb);
  color: #fff;
  border-color: transparent;
}

/* Arrangement Description Card */
.arrangement_description_card {
  background: linear-gradient(45deg, #e056fd, #f093fb);
  border: none;
  color: #fff;
  transition: all 0.3s ease;
}

.arrangement_description_card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 16px rgba(224, 86, 253, 0.3);
}

.arrangement_description_content {
  position: relative;
}

.arrangement_title {
  font-size: 20px;
  font-weight: 700;
  color: #fff;
  margin: 0 0 8px 0;
  letter-spacing: 0.5px;
}

.arrangement_instruments {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.8);
  margin: 0 0 12px 0;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.arrangement_text {
  font-size: 14px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.95);
  margin: 0;
}

/* Individual Control */
.creativity_control {
  margin-bottom: 20px;
}

.control_header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}

.control_label {
  font-size: 13px;
  font-weight: 500;
  color: #333;
}

.control_value {
  font-size: 13px;
  font-weight: 600;
  color: #e056fd;
  min-width: 40px;
  text-align: right;
}

.creativity_slider {
  width: 100%;
  height: 8px;
  border-radius: 4px;
  background: #e9ecef;
  outline: none;
  margin-bottom: 8px;
  -webkit-appearance: none;
}

.creativity_slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: linear-gradient(45deg, #e056fd, #f093fb);
  cursor: pointer;
  border: 2px solid #fff;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
  transition: transform 0.2s ease;
}

.creativity_slider::-webkit-slider-thumb:hover {
  transform: scale(1.1);
}

.creativity_slider::-moz-range-thumb {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: linear-gradient(45deg, #e056fd, #f093fb);
  cursor: pointer;
  border: 2px solid #fff;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
}

.creativity_labels {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  color: #999;
  margin-bottom: 4px;
}

.creativity_description {
  font-size: 14px;
  color: #666;
  margin-bottom: 24px;
}

.additional_requests {
  margin-bottom: 24px;
}

.request_textarea {
  width: 90%;
  min-height: 80px;
  padding: 12px 16px;
  border: 1px solid #ddd;
  border-radius: 8px;
  font-size: 14px;
  resize: vertical;
  background: #f8f9fa;
  color: #666;
}

/* XML Metadata Input Fields */
.form_input,
.form_textarea {
  width: 90%;
  padding: 12px 16px;
  border: 1px solid #ddd;
  border-radius: 8px;
  font-size: 14px;
  background: #f8f9fa;
  color: #666;
  font-family: inherit;
  transition: border-color 0.3s ease, background-color 0.3s ease;
}

.form_input:focus,
.form_textarea:focus {
  outline: none;
  border-color: #1e88e5;
  background: #fff;
}

.form_textarea {
  min-height: 60px;
  resize: vertical;
}

.xml_metadata_section .form_group {
  margin-bottom: 16px;
}

.xml_metadata_section .form_group:last-child {
  margin-bottom: 0;
}

.generate_button {
  width: 100%;
  background: linear-gradient(45deg, #e056fd, #f093fb);
  color: #fff;
  border: none;
  padding: 16px;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
}

.generate_button:hover {
  background: linear-gradient(45deg, #d045ed, #e082eb);
}

.generate_button:disabled {
  background: #ccc;
  cursor: not-allowed;
}

/* Explore Library Modal */
.explore_search_section {
  margin-bottom: 24px;
}

.ai_modal_container .explore_search_section {
  margin-top: 24px;
}

.explore_search_section .form_label {
  color: #333;
  margin-bottom: 8px;
}

.search_input {
  width: 100%;
  height: 48px;
  padding: 12px 16px;
  border: 1px solid #ddd;
  border-radius: 8px;
  font-size: 14px;
  background: #f8f9fa;
  color: #333;
  margin-bottom: 16px;
  transition: all 0.3s ease;
}

.search_input:focus {
  outline: none;
  border-color: #1e88e5;
  box-shadow: 0 0 0 3px rgba(30, 136, 229, 0.1);
}

.search_input::placeholder {
  color: #999;
}

/* Search Results */
.search_results_container {
  background: #fff;
  border-radius: 8px;
  padding: 16px;
  margin-top: 12px;
  margin-bottom: 0;
  max-height: 350px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: #ccc #fff;
  display: none; /* Initially hidden */
  border: 1px solid #e0e0e0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.search_results_container.show {
  display: block;
}

.search_results_container::-webkit-scrollbar {
  width: 8px;
}

.search_results_container::-webkit-scrollbar-track {
  background: #f5f5f5;
  border-radius: 4px;
}

.search_results_container::-webkit-scrollbar-thumb {
  background: #ccc;
  border-radius: 4px;
}

.search_results_container::-webkit-scrollbar-thumb:hover {
  background: #aaa;
}

.search_results_grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.search_result_item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
  background: #f8f9fa;
  border-radius: 8px;
  transition: all 0.3s ease;
  cursor: pointer;
  border: 1px solid #e9ecef;
}

.search_result_item:hover {
  background: #e9ecef;
  transform: translateY(-2px);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}

.search_result_cover {
  width: 60px;
  height: 60px;
  border-radius: 6px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  flex-shrink: 0;
}

.search_result_info {
  flex: 1;
  min-width: 0;
}

.search_result_title {
  font-size: 14px;
  font-weight: 600;
  color: #333;
  margin-bottom: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 200px;
}

/* Search Loading States */
.search_loading_initial {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  color: #666;
}

.search_loading_more {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  color: #999;
  gap: 10px;
}

.loading_spinner {
  width: 32px;
  height: 32px;
  border: 3px solid rgba(0, 0, 0, 0.1);
  border-top: 3px solid #4A90E2;
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin-bottom: 12px;
}

.loading_spinner_small {
  width: 20px;
  height: 20px;
  border: 2px solid rgba(0, 0, 0, 0.1);
  border-top: 2px solid #4A90E2;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

.loading_text {
  font-size: 14px;
  color: #666;
}

.loading_text_small {
  font-size: 12px;
  color: #999;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* Search Input Container */
.search_input_container {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  margin-bottom: 0;
}

.search_input_container .search_icon {
  position: absolute;
  left: 16px;
  top: 40%;
  transform: translateY(-50%);
  color: #999;
  font-size: 15px;
  pointer-events: none;
  line-height: 1;
}

.search_input_container .search_input {
  flex: 1;
  padding-left: 45px; /* Make space for search icon */
  padding-right: 45px; /* Make space for toggle button */
}

.search_toggle_button {
  position: absolute;
  right: 12px;
  top: 40%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: #999;
  font-size: 14px;
  padding: 6px;
  cursor: pointer;
  border-radius: 4px;
  transition: all 0.3s ease;
  z-index: 10;
}

.search_toggle_button:hover {
  color: #333;
  background: rgba(0, 0, 0, 0.05);
}

.search_toggle_button.expanded {
  transform: translateY(-50%) rotate(180deg);
}

.search_toggle_button i {
  font-size: 12px;
  line-height: 1;
}

.search_results_container.collapsed {
  display: none !important;
}

.search_result_artist_row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 2px;
}

.search_result_artist {
  font-size: 12px;
  color: #666;
}

.part_badge {
  display: inline-block;
  padding: 2px 8px;
  font-size: 10px;
  font-weight: 500;
  color: #fff;
  background: #999;
  border-radius: 4px;
  white-space: nowrap;
}

.search_result_date {
  font-size: 11px;
  color: #999;
}

.search_result_item.selected {
  background: #4A90E2;
  border: 1px solid #3A7BD5;
}

.search_result_item.selected .search_result_title {
  color: #fff;
}

.search_result_item.selected .search_result_artist {
  color: #e0e0e0;
}

.search_result_item.selected .search_result_date {
  color: #d0d0d0;
}

/* No Results Found */
.no_results_found {
  display: none;
  text-align: center;
  padding: 40px 20px;
  color: #999;
}

.no_results_found .no_results_icon {
  font-size: 48px;
  margin-bottom: 16px;
  opacity: 0.5;
}

.no_results_found .no_results_text {
  font-size: 16px;
  font-weight: 500;
}


/* Score Preview */
.modal_content_wrapper {
  display: flex;
  gap: 24px;
  align-items: flex-start;
}

.modal_content_wrapper .ai_modal_container {
  flex: 1;
  min-width: 0;
}

.score_preview_container {
  flex: 0.5;
  min-width: 400px;
  background: #fff;
  border-radius: 12px;
  padding: 24px;
  display: none;
}

.score_preview_container.show {
  display: block;
}

.score_preview_header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid #eee;
}

.score_preview_title {
  font-size: 18px;
  font-weight: 600;
  color: #333;
}

.score_preview_close {
  background: none;
  border: none;
  font-size: 20px;
  cursor: pointer;
  color: #999;
  padding: 4px;
}

.score_preview_close:hover {
  color: #333;
}

.score_info {
  margin-bottom: 20px;
}

.score_info_title {
  font-size: 20px;
  font-weight: 700;
  color: #333;
  margin-bottom: 4px;
}

.score_info_details {
  display: flex;
  gap: 16px;
  font-size: 14px;
  color: #666;
  margin-bottom: 8px;
}

.score_info_meta {
  font-size: 12px;
  color: #999;
}

.score_sheet_container {
  background: #f8f9fa;
  border-radius: 8px;
  padding: 20px;
  text-align: center;
  min-height: 400px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.score_sheet_image {
  max-width: 100%;
  max-height: 400px;
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

/* Tab Navigation */
.ai_studio_upload_section.tabs {
  margin-bottom: 32px;
}

.upload_button.active {
  /* background: rgba(255, 255, 255, 0.2); */
  border-bottom: 3px solid #fff;
  /* border-radius: 12px 12px 0 0; */
}

.explore_button.active {
  /* background: rgba(255, 255, 255, 0.2); */
  border-bottom: 3px solid #fff;
  /* border-radius: 12px 12px 0 0;ㄴ */
}

a:visited{
    text-decoration: none;
    color: #333;
    /* color: #fff */
}

/* Modal States */
.modal_content {
  display: none;
  /* margin-top: 20px;
  margin-bottom: 40px; */
  max-width: 1400px;
  margin: 70px auto;
}

.modal_content.active {
  display: block;
}

@media (max-width: 768px) {
  .ai_studio_header h1 {
    font-size: 32px;
  }
  
  .ensemble_grid {
    grid-template-columns: 1fr;
  }
  
  .ai_studio_upload_section {
    flex-direction: column;
    align-items: center;
  }
  
  .ai_modal_container {
    padding: 20px;
    margin: 20px;
  }
  
  .modal_content_wrapper {
    flex-direction: column;
    gap: 16px;
  }
  
  .score_preview_container {
    min-width: auto;
    order: -1;
  }
  
  
  .search_results_container {
    max-width: 100%;
  }
  
  .score_grid {
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 16px;
    max-width: none;
  }
  
  .workspace_tab_nav {
    flex-wrap: wrap;
    gap: 8px;
  }
  
  .tab_btn {
    min-width: 120px;
  }
}

/* Workspace Styles */
.workspace_header {
  padding: 40px 0 30px 0;
}

.workspace_header h1 {
  font-size: 48px;
  font-weight: 300;
  color: #fff;
  margin: 0;
}

.workspace_tabs {
  margin-bottom: 40px;
}

.workspace_tab_nav {
  display: flex;
  gap: 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.tab_btn {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.6);
  font-size: 16px;
  font-weight: 500;
  cursor: pointer;
  border-radius: 8px 8px 0 0;
  transition: all 0.3s ease;
  position: relative;
}

.tab_btn:hover {
  color: rgba(255, 255, 255, 0.8);
  background: rgba(255, 255, 255, 0.05);
}

.tab_btn.active {
  color: #fff;
  background: rgba(255, 255, 255, 0.1);
}

.tab_btn.active::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  right: 0;
  height: 2px;
  background: #4A90E2;
}

.tab_icon {
  font-size: 18px;
}

.tab_count {
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 600;
  min-width: 20px;
  text-align: center;
}

.tab_btn.active .tab_count {
  background: #4A90E2;
}

.workspace_content {
  padding: 20px 0;
}

.tab_content {
  display: none;
}

.tab_content.active {
  display: block;
}

.score_grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  max-width: 100%;
}

/* Ensure maximum of 4 columns on larger screens */
@media (min-width: 1200px) {
  .score_grid {
    grid-template-columns: repeat(4, 1fr);
    max-width: 1200px;
    margin: 0 auto;
  }
}

/* 3 columns for medium screens */
@media (max-width: 1199px) and (min-width: 900px) {
  .score_grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* 2 columns for smaller screens */
@media (max-width: 899px) and (min-width: 600px) {
  .score_grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* 1 column for mobile */
@media (max-width: 599px) {
  .score_grid {
    grid-template-columns: 1fr;
  }
}

.score_header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}

.score_header h3 {
  margin: 0;
  flex: 1;
}

.score_header .play_btn {
  background: #007bff;
  border: none;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  color: white;
  font-size: 14px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  flex-shrink: 0;
  margin-left: 12px;
}

.score_header .play_btn:hover {
  background: #0056b3;
  transform: scale(1.05);
}

.score_header .play_btn.playing {
  background: #28a745;
}

.score_header .play_btn.playing:hover {
  background: #1e7e34;
}

.score_card {
  background: #2a2a2a;
  border-radius: 16px;
  overflow: hidden;
  transition: all 0.3s ease;
  cursor: pointer;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.score_card:hover,
.score_card.hovered {
  transform: translateY(-4px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.3);
  border-color: rgba(255, 255, 255, 0.2);
}

.score_preview {
  position: relative;
  aspect-ratio: 3/4;
  overflow: hidden;
}

.score_preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.score_card:hover .score_preview img {
  transform: scale(1.05);
}

.score_info {
  padding: 20px;
}

.score_info h3 {
  font-size: 18px;
  font-weight: 600;
  color: #fff;
  margin: 0 0 8px 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.score_info p {
  font-size: 14px;
  color: #aaa;
  margin: 0 0 16px 0;
}

.score_controls {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.play_section {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 8px;
}

.play_btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #4A90E2;
  border: none;
  color: #fff;
  font-size: 14px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  flex-shrink: 0;
}

.play_btn:hover {
  background: #3A7BD5;
  transform: scale(1.05);
}

.play_btn.playing {
  background: #ff6b6b;
}

.score_title {
  flex: 1;
  font-size: 14px;
  color: #fff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-right: 8px;
}

.duration {
  font-size: 12px;
  color: #aaa;
  flex-shrink: 0;
}

.action_buttons {
  display: flex;
  justify-content: space-between;
  gap: 8px;
}

.action_btn {
  flex: 1;
  padding: 8px 16px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 6px;
  color: rgba(255, 255, 255, 0.7);
  font-size: 14px;
  cursor: pointer;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.action_btn:hover {
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.3);
}

.action_btn.favorite.active {
  background: rgba(255, 107, 107, 0.2);
  border-color: #ff6b6b;
  color: #ff6b6b;
}

.action_btn.download.downloading {
  background: rgba(74, 144, 226, 0.2);
  border-color: #4A90E2;
  color: #4A90E2;
}

/* Task Page Loading and State Styles */
.empty_state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 400px;
  padding: 60px 20px;
  text-align: center;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 20px;
  margin: 20px 0;
  border: 2px dashed #e9ecef;
  animation: fadeIn 0.5s ease-in;
}

.empty_state .empty_icon {
  font-size: 64px;
  margin-bottom: 24px;
  opacity: 0.7;
  animation: bounce 2s infinite;
}

.empty_state h3 {
  font-size: 24px;
  color: #Fff;
  margin-bottom: 12px;
  font-weight: 600;
}

.empty_state p {
  font-size: 16px;
  color: #ccc;
  line-height: 1.5;
  max-width: 400px;
}

.error_state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 300px;
  padding: 40px 20px;
  text-align: center;
  background: linear-gradient(135deg, #ffe6e6 0%, #fff5f5 100%);
  border-radius: 20px;
  margin: 20px 0;
  border: 2px solid #f5c6cb;
  animation: fadeIn 0.5s ease-in;
}

.error_state .error_icon {
  font-size: 48px;
  margin-bottom: 20px;
  color: #dc3545;
  animation: shake 0.5s ease-in-out;
}

.error_state h3 {
  font-size: 20px;
  color: #721c24;
  margin-bottom: 12px;
  font-weight: 600;
}

.error_state p {
  font-size: 14px;
  color: #856404;
  margin-bottom: 20px;
}

.error_state .retry_btn {
  background: #dc3545;
  color: white;
  border: none;
  padding: 12px 24px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
}

.error_state .retry_btn:hover {
  background: #c82333;
  transform: translateY(-2px);
  box-shadow: 0 4px 8px rgba(220, 53, 69, 0.3);
}

.task_loading_initial,
.task_loading_more {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  text-align: center;
}

.task_loading_initial {
  min-height: 200px;
  background: linear-gradient(135deg, #e3f2fd 0%, #f3e5f5 100%);
  border-radius: 16px;
  margin: 20px 0;
}

.task_loading_more {
  padding: 20px;
  margin: 10px 0;
}

.loading_spinner {
  width: 48px;
  height: 48px;
  border: 4px solid #e9ecef;
  border-top: 4px solid #007bff;
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin-bottom: 16px;
}

.loading_spinner_small {
  width: 32px;
  height: 32px;
  border: 3px solid #e9ecef;
  border-top: 3px solid #007bff;
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin-bottom: 12px;
}

.loading_text {
  font-size: 16px;
  color: #495057;
  font-weight: 500;
}

.loading_text_small {
  font-size: 14px;
  color: #6c757d;
  font-weight: 500;
}

/* Animations */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(-10px);
  }
  60% {
    transform: translateY(-5px);
  }
}

@keyframes shake {
  0%, 100% {
    transform: translateX(0);
  }
  10%, 30%, 50%, 70%, 90% {
    transform: translateX(-3px);
  }
  20%, 40%, 60%, 80% {
    transform: translateX(3px);
  }
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

/* Pagination Styles */
.pagination_ellipsis {
  padding: 8px 12px;
  color: #6c757d;
  font-size: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.pagination_btn.disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

/* Enhanced Play Section Styles */
.play_section {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #2c3e50;
  padding: 12px 16px;
  border-radius: 20px;
  border: 1px solid #34495e;
  flex: 1;
}

.play_section .play_btn {
  background: #3498db;
  color: white;
  border: none;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  cursor: pointer;
  transition: all 0.2s ease;
  flex-shrink: 0;
}

.play_section .play_btn:hover {
  background: #2980b9;
  transform: scale(1.05);
}

.play_section .play_btn.playing {
  background: #27ae60;
}

.track_info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}

.track_title {
  font-weight: 600;
  font-size: 14px;
  color: #ecf0f1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.progress_container {
  display: flex;
  align-items: center;
  gap: 8px;
}

.current_time,
.total_time {
  font-size: 12px;
  color: #bdc3c7;
  font-weight: 500;
  min-width: 35px;
  text-align: center;
}

.progress_bar {
  flex: 1;
  height: 4px;
  background: #34495e;
  border-radius: 2px;
  position: relative;
  cursor: pointer;
}

.progress_track {
  height: 100%;
  background: #3498db;
  border-radius: 2px;
  width: 0%;
  transition: width 0.1s ease;
}

.progress_handle {
  position: absolute;
  top: 50%;
  left: 0%;
  transform: translate(-50%, -50%);
  width: 12px;
  height: 12px;
  background: #3498db;
  border-radius: 50%;
  opacity: 0;
  transition: opacity 0.2s ease;
}

.progress_bar:hover .progress_handle {
  opacity: 1;
}

.volume_section {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.volume_icon {
  font-size: 14px;
  cursor: pointer;
  filter: grayscale(1) brightness(0.8);
}

.volume_toggle {
  width: 50px;
  height: 20px;
  background: #34495e;
  border-radius: 10px;
  position: relative;
  cursor: pointer;
  transition: background 0.2s ease;
}

.volume_toggle.active {
  background: #3498db;
}

.volume_slider {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 16px;
  height: 16px;
  background: #ecf0f1;
  border-radius: 50%;
  transition: transform 0.2s ease;
  box-shadow: 0 1px 3px rgba(0,0,0,0.4);
}

.volume_toggle.active .volume_slider {
  transform: translateX(30px);
}

/* Action Buttons Styles */
.action_buttons {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}

.action_btn {
  padding: 8px 16px;
  border: none;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  flex: 1;
}

.action_btn.detail {
  background: #f8f9fa;
  color: #495057;
  border: 1px solid #dee2e6;
}

.action_btn.detail:hover {
  background: #e9ecef;
  color: #343a40;
}

.action_btn.download {
  background: #2c3e50;
  color: white;
}

.action_btn.download:hover {
  background: #1a252f;
}

.action_btn.download.downloading {
  background: #34495e;
  pointer-events: none;
}

/* Sidebar Credit Section */
.sidebar_credit_section {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 16px;
  background: #1e1e1e;
  border-top: 1px solid #333;
}

.credit_info {
  margin-bottom: 12px;
}

.credit_amount {
  font-size: 14px;
  font-weight: 700;
}

.go_pro_button {
  width: 100%;
  background: linear-gradient(135deg, #ff6b35 0%, #f7931e 100%);
  border: none;
  border-radius: 8px;
  padding: 12px;
  margin-bottom: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
  text-align: left;
}

.go_pro_button:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(255, 107, 53, 0.3);
}

.go_pro_content {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.go_pro_title {
  color: white;
  font-size: 14px;
  font-weight: 700;
}

.go_pro_subtitle {
  color: rgba(255, 255, 255, 0.9);
  font-size: 11px;
  line-height: 1.3;
  font-weight: 400;
}

.upgrade_button {
  width: 100%;
  background: transparent;
  border: 1px solid #444;
  border-radius: 6px;
  padding: 8px 12px;
  color: #a0a0a0;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
}

.upgrade_button:hover {
  background: #333;
  border-color: #555;
  color: #fff;
}

/* Mobile responsive adjustments */
@media (max-width: 768px) {
  .sidebar_credit_section {
    padding: 12px;
  }
  
  .go_pro_subtitle {
    font-size: 10px;
  }
  
  .ai_studio_sidebar {
    padding-bottom: 120px;
  }
}

/* Pagination Styles */
.pagination_container {
  display: flex;
  justify-content: center;
  margin-top: 40px;
  margin-bottom: 40px;
}

.pagination {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #ffffff;
  padding: 12px;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  border: 1px solid #e9ecef;
}

.pagination_numbers {
  display: flex;
  align-items: center;
  gap: 4px;
}

.pagination_btn {
  min-width: 36px;
  height: 36px;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: #6c757d;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}

.pagination_btn:hover:not(:disabled):not(.active) {
  background: #f8f9fa;
  color: #495057;
}

.pagination_btn.active {
  background: #2c3e50;
  color: white;
}

.pagination_btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.pagination_btn.prev,
.pagination_btn.next {
  min-width: 32px;
  font-size: 16px;
}

.pagination_dots {
  color: #6c757d;
  font-size: 14px;
  padding: 0 8px;
  user-select: none;
}

/* Dark theme for pagination */
@media (prefers-color-scheme: dark) {
  .pagination {
    background: #343a40;
    border-color: #495057;
  }
  
  .pagination_btn {
    color: #adb5bd;
  }
  
  .pagination_btn:hover:not(:disabled):not(.active) {
    background: #495057;
    color: #f8f9fa;
  }
  
  .pagination_dots {
    color: #adb5bd;
  }
}

/* Detail Modal Styles */
.detail_modal_overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.8);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 100;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
}

.detail_modal_overlay.show {
  opacity: 1;
  visibility: visible;
}

.detail_modal {
  background: white;
  border-radius: 16px;
  width: 90vw;
  max-width: 1200px;
  max-height: 90vh;
  overflow: hidden;
  position: relative;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  transform: scale(0.9);
  transition: transform 0.3s ease;
}

.detail_modal_overlay.show .detail_modal {
  transform: scale(1);
}

.detail_modal_close {
  position: absolute;
  top: 16px;
  right: 16px;
  background: rgba(0, 0, 0, 0.5);
  color: white;
  border: none;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  font-size: 18px;
  cursor: pointer;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease;
}

.detail_modal_close:hover {
  background: rgba(0, 0, 0, 0.7);
}

/* Page Navigation Styles */
.detail_page_navigation {
  padding: 12px 0;
  border-top: 1px solid #eee;
  border-bottom: 1px solid #eee;
}

.page_nav_controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
}

.page_nav_btn {
  background: #f8f9fa;
  border: 1px solid #dee2e6;
  border-radius: 8px;
  padding: 8px 16px;
  cursor: pointer;
  font-size: 14px;
  color: #495057;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  gap: 4px;
}

.page_nav_btn:hover:not(:disabled) {
  background: #e9ecef;
  border-color: #adb5bd;
}

.page_nav_btn:disabled {
  background: #f8f9fa;
  color: #6c757d;
  cursor: not-allowed;
  opacity: 0.5;
}

.page_info {
  font-size: 14px;
  color: #6c757d;
  font-weight: 500;
  min-width: 60px;
  text-align: center;
}

.current_page {
  color: #495057;
  font-weight: 600;
}

/* Score preview adjustments */
.detail_score_preview {
  min-height: 400px;
  /* max-height: 560px; */
  overflow: auto;
  background: #f8f9fa;
  border: 1px solid #dee2e6;
  border-radius: 8px;
  padding: 16px 20px;
  margin-bottom: 16px;
}

.detail_score_preview svg {
  width: 100%;
  height: auto;
}

.detail_score_preview .loading {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 200px;
  color: #6c757d;
}

.detail_score_preview .error {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 200px;
  color: #dc3545;
  flex-direction: column;
  gap: 8px;
}

.detail_modal_content {
  display: flex;
  height: 85vh;
}

.detail_left_panel {
  flex: 1.8;
  background: #f8f9fa;
  display: flex;
  flex-direction: column;
  padding: 24px;
}

.detail_score_preview {
  /* flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px; */
}

.detail_score_image {
  max-width: 100%;
  max-height: 100%;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.detail_player_controls {
  background: white;
  padding: 20px;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.detail_progress_bar {
  width: 100%;
  height: 4px;
  background: #e9ecef;
  border-radius: 2px;
  position: relative;
  margin-bottom: 12px;
  cursor: pointer;
}

.detail_progress_track {
  height: 100%;
  background: #007bff;
  border-radius: 2px;
  width: 0;
  transition: width 0.1s ease;
}

.detail_progress_handle {
  position: absolute;
  top: 50%;
  left: 30%;
  transform: translate(-50%, -50%);
  width: 12px;
  height: 12px;
  background: #007bff;
  border-radius: 50%;
  opacity: 0;
  transition: opacity 0.2s ease;
}

.detail_progress_bar:hover .detail_progress_handle {
  opacity: 1;
}

.detail_time_display {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: #6c757d;
  margin-bottom: 16px;
}

.detail_playback_controls {
  display: flex;
  justify-content: center;
  gap: 12px;
}

.detail_control_btn {
  background: #f8f9fa;
  border: none;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
  font-size: 16px;
}

.detail_control_btn:hover {
  background: #e9ecef;
}

.detail_control_btn.detail_play {
  background: #007bff;
  color: white;
  width: 20px;
  height: 20px;
  font-size: 11px;
}

.detail_control_btn.detail_play:hover {
  background: #0056b3;
}

.detail_control_btn.detail_pause {
  background: #ffc107;
  color: white;
  width: 20px;
  height: 20px;
  font-size: 11px;
}

.detail_control_btn.detail_pause:hover {
  background: #e0a800;
}

.detail_control_btn.detail_stop {
  background: #dc3545;
  color: white;
  width: 20px;
  height: 20px;
  font-size: 11px;
}

.detail_control_btn.detail_stop:hover {
  background: #c82333;
}

.detail_right_panel {
  flex: 1;
  padding: 24px;
  overflow-y: auto;
}

.detail_header {
  margin-bottom: 24px;
}

.detail_title {
  font-size: 24px;
  font-weight: 700;
  color: #2c3e50;
  margin-bottom: 12px;
}

.detail_genre {
  display: flex;
  gap: 8px;
}

.genre_tag, .difficulty_tag {
  padding: 4px 12px;
  border-radius: 16px;
  font-size: 12px;
  font-weight: 500;
}

.genre_tag {
  background: #e3f2fd;
  color: #1976d2;
}

.difficulty_tag {
  background: #f3e5f5;
  color: #7b1fa2;
}

.detail_section {
  margin-bottom: 20px;
}

.detail_section h3 {
  font-size: 16px;
  font-weight: 600;
  color: #2c3e50;
  margin-bottom: 12px;
}

.detail_progress_section {
  margin-bottom: 16px;
}

.progress_label {
  font-size: 14px;
  color: #6c757d;
  margin-bottom: 8px;
}

.progress_bar_container {
  display: flex;
  align-items: center;
  gap: 12px;
}

.progress_bar_bg {
  flex: 1;
  height: 8px;
  background: #e9ecef;
  border-radius: 4px;
  overflow: hidden;
}

.progress_bar_fill {
  height: 100%;
  background: linear-gradient(90deg, #667eea 0%, #764ba2 100%);
  border-radius: 4px;
  transition: width 0.3s ease;
}

.progress_percentage {
  font-size: 14px;
  font-weight: 600;
  color: #2c3e50;
  min-width: 35px;
}

.detail_description {
  margin-bottom: 20px;
  font-size: 14px;
  line-height: 1.6;
  color: #495057;
}

.detail_review_section {
  margin-bottom: 20px;
}

.detail_review_section p {
  font-size: 14px;
  line-height: 1.6;
  color: #6c757d;
  margin-bottom: 8px;
}

.detail_rating {
  margin-bottom: 24px;
}

.rating_container {
  display: flex;
  align-items: center;
  gap: 12px;
}

.stars {
  display: flex;
  gap: 2px;
}

.star {
  font-size: 20px;
  color: #e0e0e0;
  transition: color 0.2s ease;
  cursor: pointer;
}

.star.active {
  color: #ffb400;
  text-shadow: 0 1px 2px rgba(255, 180, 0, 0.3);
}

.star:hover {
  color: #ffb400;
  transform: scale(1.1);
}

.rating_score {
  font-size: 16px;
  font-weight: 600;
  color: #333;
  margin-left: 8px;
}

.detail_review_section {
  margin-bottom: 20px;
}

.review_content {
  background: #f8f9fa;
  padding: 16px;
  border-radius: 8px;
  border-left: 4px solid #007bff;
}

.review_content p {
  margin: 0 0 8px 0;
  color: #555;
  line-height: 1.5;
}

.review_content p:last-child {
  margin-bottom: 0;
}

/* Review Form Styles */
.review_form {
  margin-top: 16px;
}

.review_textarea {
  width: 100%;
  min-height: 100px;
  padding: 6px;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  font-family: inherit;
  font-size: 14px;
  line-height: 1.5;
  resize: vertical;
  transition: border-color 0.3s ease;
}

.review_textarea:focus {
  outline: none;
  border-color: #007bff;
  box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1);
}

.review_textarea::placeholder {
  color: #888;
}

.form_actions {
  display: flex;
  gap: 12px;
  margin-top: 16px;
}

.submit_review_btn {
  background: #007bff;
  color: white;
  border: none;
  padding: 10px 20px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  gap: 6px;
}

.submit_review_btn:hover {
  background: #0056b3;
  transform: translateY(-1px);
}

.cancel_review_btn {
  background: #6c757d;
  color: white;
  border: none;
  padding: 10px 20px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
}

.cancel_review_btn:hover {
  background: #5a6268;
  transform: translateY(-1px);
}

/* Review Actions */
.review_actions {
  margin-top: 12px;
}

.edit_review_btn {
  background: #28a745;
  color: white;
  border: none;
  padding: 8px 16px;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  gap: 6px;
}

.edit_review_btn:hover {
  background: #1e7e34;
  transform: translateY(-1px);
}

/* Rating Form Styles */
.rating_form {
  margin-top: 12px;
}

.rating_help {
  font-size: 13px;
  color: #6c757d;
  margin-left: 8px;
  font-style: italic;
}

.star.interactive {
  cursor: pointer;
  transition: all 0.2s ease;
}

.star.interactive:hover {
  transform: scale(1.2);
  color: #ffb400;
}

/* No Review/Rating Messages */
.no_review_message,
.no_rating_message {
  color: #6c757d;
  font-style: italic;
  margin: 8px 0;
  padding: 12px;
  background: #f8f9fa;
  border-radius: 6px;
  text-align: center;
}

.detail_actions {
  display: flex;
  gap: 12px;
}

.detail_download_btn {
  flex: 1;
  padding: 12px 16px;
  border: none;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
}

.detail_download_btn.pdf {
  background: #007bff;
  color: white;
}

/* disable .detail_download_btn.pdf { */
.detail_download_btn.pdf:disabled {
  background: #6c757d;
  cursor: not-allowed;
  opacity: 0.6;
}
.detail_download_btn.pdf:hover {
  background: #0056b3;
}

.detail_download_btn.xml {
  background: #f8f9fa;
  color: #495057;
  border: 1px solid #dee2e6;
}

.detail_download_btn.xml:hover {
  background: #e9ecef;
}

/* Mobile responsive */
@media (max-width: 768px) {
  .detail_modal {
    width: 95vw;
    height: 90vh;
  }
  
  .detail_modal_content {
    flex-direction: column;
    height: auto;
  }
  
  .detail_left_panel {
    height: 300px;
  }
  
  .detail_right_panel {
    flex: 1;
  }
  
  .detail_actions {
    flex-direction: column;
  }
}

/* Footer Styles */
#footer {
  background: #1a1a1a;
  color: #fff;
  padding: 80px 0 60px;
  margin-top: 100px;
}

.footer_inner {
  max-width: 1312px;
  margin: 0 auto;
  padding: 0 32px;
}

.footer_top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 60px;
  padding-bottom: 40px;
  border-bottom: 1px solid #333;
}

.footer_logo {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}

.footer_logo img {
  width: 40px;
  height: 40px;
}

.footer_logo h2 {
  font-size: 24px;
  font-weight: 700;
  color: #fff;
}

.footer_nav {
  display: flex;
  gap: 60px;
  flex: 1;
}

.footer_section h3 {
  font-size: 16px;
  font-weight: 600;
  color: #fff;
  margin-bottom: 16px;
}

.footer_section ul {
  list-style: none;
}

.footer_section li {
  margin-bottom: 8px;
}

.footer_section a {
  color: #aaa;
  text-decoration: none;
  font-size: 14px;
  transition: color 0.2s ease;
}

.footer_section a:hover {
  color: #fff;
}

.footer_social {
  flex-shrink: 0;
}

.footer_social h3 {
  font-size: 16px;
  font-weight: 600;
  color: #fff;
  margin-bottom: 16px;
}

.social_links {
  display: flex;
  gap: 12px;
}

.social_link {
  width: 40px;
  height: 40px;
  background: #333;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}

.social_link:hover {
  background: #555;
  transform: translateY(-2px);
}

.social_link img {
  width: 20px;
  height: 20px;
  filter: brightness(0) invert(1);
}

.footer_bottom {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding-top: 30px;
  gap: 40px;
}

.footer_info {
  flex: 1;
}

.footer_info p {
  color: #888;
  font-size: 13px;
  line-height: 1.6;
  margin-bottom: 4px;
}

.footer_info p:first-child {
  font-weight: 600;
  color: #aaa;
  margin-bottom: 12px;
}

.footer_language {
  flex-shrink: 0;
}

.language_select {
  background: #333;
  border: 1px solid #555;
  border-radius: 6px;
  color: #fff;
  padding: 8px 12px;
  font-size: 14px;
  cursor: pointer;
  outline: none;
}

.language_select:hover {
  border-color: #777;
}

.language_select option {
  background: #333;
  color: #fff;
}

/* Mobile responsive */
@media (max-width: 768px) {
  #footer {
    padding: 40px 0 20px;
    margin-top: 60px;
  }
  
  .footer_inner {
    padding: 0 20px;
  }
  
  .footer_top {
    flex-direction: column;
    gap: 40px;
  }
  
  .footer_nav {
    flex-direction: column;
    gap: 30px;
  }
  
  .footer_bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
  }
  
  .footer_logo h2 {
    font-size: 20px;
  }
  
  .social_links {
    justify-content: flex-start;
  }
}

@media (max-width: 480px) {
  .footer_nav {
    grid-template-columns: repeat(2, 1fr);
    display: grid;
    gap: 20px;
  }
  
  .footer_section {
    margin-bottom: 0;
  }
}

/* Credit Page Styles */
.credit_page_container {
  max-width: 1600px;
  margin: 0 auto;
  padding: 40px 20px;
}

.credit_page_header {
  text-align: center;
  margin-bottom: 60px;
}

.credit_page_header h1 {
  font-size: 36px;
  font-weight: 700;
  color: #000;
  margin-bottom: 12px;
}

.credit_page_header p {
  font-size: 16px;
  color: rgba(0, 0, 0, 0.7);
}

.pricing_cards_container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 32px;
  max-width: 1000px;
  margin: 0 auto;
}

.pricing_card {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 16px;
  padding: 32px 24px;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.pricing_card:hover {
  transform: translateY(-4px);
  border-color: rgba(0, 0, 0, 0.2);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.15);
}

.pricing_card.highlight {
  border-color: #2563eb;
  box-shadow: 0 0 32px rgba(37, 99, 235, 0.2);
  animation: pulse 2s ease-in-out;
}

@keyframes pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.02); }
}

.plan_header {
  margin-top:30px; 
  margin-bottom: 24px;
}

.plan_header h3 {
  font-size: 24px;
  font-weight: 700;
  color: #000;
  margin-bottom: 4px;
}

.plan_header p {
  font-size: 14px;
  color: rgba(0, 0, 0, 0.6);
}

.plan_price {
  margin-bottom: 24px;
}

.price_number {
  font-size: 48px;
  font-weight: 700;
  color: #000;
}

.price_currency {
  font-size: 16px;
  color: rgba(0, 0, 0, 0.6);
  margin-left: 8px;
}

.plan_button {
  width: 100%;
  padding: 12px 24px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  margin-bottom: 32px;
  border: none;
}

.plan_button.current {
  background: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(255, 255, 255, 0.2);
  cursor: default;
}

.plan_button.subscribe {
  background: #fff;
  color: #000;
}

.plan_button.subscribe:hover {
  background: rgba(255, 255, 255, 0.9);
  transform: translateY(-1px);
}

.plan_features {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.feature_item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.feature_icon {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: bold;
  flex-shrink: 0;
  margin-top: 2px;
}

.feature_icon.info {
  background: rgba(59, 130, 246, 0.2);
  color: #60a5fa;
  border: 1px solid rgba(59, 130, 246, 0.3);
}

.feature_icon.check {
  background: rgba(34, 197, 94, 0.2);
  color: #4ade80;
  border: 1px solid rgba(34, 197, 94, 0.3);
}

.feature_text {
  color: rgba(255, 255, 255, 0.8);
  font-size: 14px;
  line-height: 1.5;
  flex: 1;
}

/* Mobile responsive */
@media (max-width: 768px) {
  .pricing_cards_container {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  
  .credit_page_header h1 {
    font-size: 28px;
  }
  
  .pricing_card {
    padding: 24px 20px;
  }
  
  .price_number {
    font-size: 40px;
  }
}

/* Responsive adjustments for play section */
@media (max-width: 768px) {
  .play_section {
    flex-direction: column;
    gap: 8px;
    padding: 10px 12px;
  }
  
  .track_info {
    width: 100%;
  }
  
  .volume_section {
    align-self: flex-end;
  }
  
  .action_buttons {
    flex-direction: column;
  }
  
  .pagination_container {
    margin-top: 24px;
    margin-bottom: 24px;
  }
  
  .pagination {
    padding: 8px;
  }
  
  .pagination_btn {
    min-width: 32px;
    height: 32px;
    font-size: 13px;
  }
}
/* Task Page Styles */
.task_page_container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 20px;
}

.task_header {
  text-align: center;
  margin-bottom: 40px;
}

.task_header h1 {
  font-size: 36px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 12px;
}

.task_header p {
  font-size: 16px;
  color: rgba(255, 255, 255, 0.7);
}

/* Task Stats Grid */
.task_stats_grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 20px;
  margin-bottom: 40px;
}

.stat_card {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 16px;
  padding: 24px;
  display: flex;
  align-items: center;
  gap: 16px;
  backdrop-filter: blur(10px);
  transition: all 0.3s ease;
}

.stat_card:hover {
  transform: translateY(-2px);
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.2);
}

.stat_icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: bold;
  flex-shrink: 0;
}

.stat_icon.completed {
  background: rgba(34, 197, 94, 0.2);
  color: #22c55e;
  border: 1px solid rgba(34, 197, 94, 0.3);
}

.stat_icon.processing {
  background: rgba(59, 130, 246, 0.2);
  color: #3b82f6;
  border: 1px solid rgba(59, 130, 246, 0.3);
  /* animation: rotate 2s linear infinite; */
}

.stat_icon.credits {
  background: rgba(168, 85, 247, 0.2);
  color: #a855f7;
  border: 1px solid rgba(168, 85, 247, 0.3);
}

.stat_icon.time {
  background: rgba(245, 158, 11, 0.2);
  color: #f59e0b;
  border: 1px solid rgba(245, 158, 11, 0.3);
}

@keyframes rotate {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.stat_content {
  flex: 1;
}

.stat_number {
  font-size: 24px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 4px;
}

.stat_label {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.7);
}

/* Task Tabs */
.task_tabs {
  margin-bottom: 32px;
}

.task_tab_nav {
  display: flex;
  gap: 8px;
  background: rgba(255, 255, 255, 0.05);
  padding: 8px;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.task_tab_nav .tab_btn {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.6);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  border-radius: 12px;
  transition: all 0.3s ease;
  flex: 1;
  justify-content: center;
}

.task_tab_nav .tab_btn:hover {
  color: rgba(255, 255, 255, 0.8);
  background: rgba(255, 255, 255, 0.05);
}

.task_tab_nav .tab_btn.active {
  color: #fff;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
}

.task_tab_nav .tab_icon {
  font-size: 16px;
}

.task_tab_nav .tab_count {
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 600;
  min-width: 20px;
  text-align: center;
}

.task_tab_nav .tab_btn.active .tab_count {
  background: rgba(255, 255, 255, 0.3);
}

/* Task List */
.task_list_container {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.task_item {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 16px;
  padding: 24px;
  backdrop-filter: blur(10px);
  transition: all 0.3s ease;
}

.task_item:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
  transform: translateY(-2px);
}

.task_info {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 16px;
}

.task_main_info {
  flex: 1;
  min-width: 0;
}

.task_title {
  font-size: 18px;
  font-weight: 600;
  color: #fff;
  margin-bottom: 8px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.task_meta {
  display: flex;
  gap: 16px;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.6);
}

.task_type {
  background: rgba(255, 255, 255, 0.1);
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 500;
}

.task_status {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  flex-shrink: 0;
}

.status_badge {
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.status_badge.completed {
  background: rgba(34, 197, 94, 0.2);
  color: #22c55e;
  border: 1px solid rgba(34, 197, 94, 0.3);
}

.status_badge.processing {
  background: rgba(59, 130, 246, 0.2);
  color: #3b82f6;
  border: 1px solid rgba(59, 130, 246, 0.3);
}

.status_badge.failed {
  background: rgba(239, 68, 68, 0.2);
  color: #ef4444;
  border: 1px solid rgba(239, 68, 68, 0.3);
}

.status_badge.cancelled {
  background: rgba(156, 163, 175, 0.2);
  color: #9ca3af;
  border: 1px solid rgba(156, 163, 175, 0.3);
}

.task_progress {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 120px;
}

.progress_bar {
  flex: 1;
  height: 6px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 3px;
  overflow: hidden;
}

.progress_fill {
  height: 100%;
  background: linear-gradient(90deg, #3b82f6, #1d4ed8);
  border-radius: 3px;
  transition: width 0.3s ease;
  animation: progress-pulse 2s ease-in-out infinite;
}

@keyframes progress-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.7; }
}

.progress_text {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.8);
  font-weight: 600;
  min-width: 35px;
  text-align: right;
}

.task_duration, .task_error {
  display: flex;
  align-items: center;
}

.duration_text, .error_text {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.6);
}

.error_text {
  color: #ef4444;
}

.task_details {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
  padding: 16px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.task_settings {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.setting_item {
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.8);
  padding: 4px 12px;
  border-radius: 16px;
  font-size: 12px;
  font-weight: 500;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.task_cost {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}

.credit_cost {
  font-size: 14px;
  font-weight: 600;
  color: #fff;
}

.credit_status {
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
}

.credit_status.used {
  background: rgba(239, 68, 68, 0.2);
  color: #ef4444;
}

.credit_status.refunded {
  background: rgba(34, 197, 94, 0.2);
  color: #22c55e;
}

.task_actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}

.task_action_btn {
  padding: 8px 16px;
  border: none;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
}

.task_action_btn.download {
  background: rgba(34, 197, 94, 0.2);
  color: #22c55e;
  border: 1px solid rgba(34, 197, 94, 0.3);
}

.task_action_btn.download:hover {
  background: rgba(34, 197, 94, 0.3);
}

.task_action_btn.preview {
  background: rgba(59, 130, 246, 0.2);
  color: #3b82f6;
  border: 1px solid rgba(59, 130, 246, 0.3);
}

.task_action_btn.preview:hover {
  background: rgba(59, 130, 246, 0.3);
}

.task_action_btn.cancel {
  background: rgba(239, 68, 68, 0.2);
  color: #ef4444;
  border: 1px solid rgba(239, 68, 68, 0.3);
}

.task_action_btn.cancel:hover {
  background: rgba(239, 68, 68, 0.3);
}

.task_action_btn.retry {
  background: rgba(245, 158, 11, 0.2);
  color: #f59e0b;
  border: 1px solid rgba(245, 158, 11, 0.3);
}

.task_action_btn.retry:hover {
  background: rgba(245, 158, 11, 0.3);
}

.task_action_btn.detail {
  background: #fff;
  color: #333;
  border: 1px solid #e5e7eb;
}

.task_action_btn.detail:hover {
  background: #f9fafb;
  border-color: #d1d5db;
}

.task_action_btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Sidebar Credit Updates */
.credit_usage {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
  margin-top: 4px;
}

/* Mobile Responsive */
@media (max-width: 768px) {
  .task_stats_grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
  
  .task_tab_nav {
    flex-wrap: wrap;
    gap: 4px;
  }
  
  .task_tab_nav .tab_btn {
    flex: 1;
    min-width: 120px;
    padding: 10px 12px;
    font-size: 13px;
  }
  
  .task_info {
    flex-direction: column;
    gap: 12px;
  }
  
  .task_status {
    align-items: flex-start;
  }
  
  .task_details {
    flex-direction: column;
    gap: 12px;
    align-items: flex-start;
  }
  
  .task_settings {
    order: 2;
  }
  
  .task_cost {
    order: 1;
    align-items: flex-start;
  }
  
  .task_actions {
    justify-content: flex-start;
    flex-wrap: wrap;
  }
  
  .task_title {
    white-space: normal;
    line-height: 1.4;
  }
}

@media (max-width: 480px) {
  .task_stats_grid {
    grid-template-columns: 1fr;
  }
  
  .stat_card {
    padding: 20px;
  }
  
  .task_item {
    padding: 20px;
  }
  
  .task_tab_nav .tab_btn {
    padding: 8px 10px;
    font-size: 12px;
  }
  
  .task_tab_nav .tab_icon {
    font-size: 14px;
  }
}

/* No Results Found - Enhanced */
.no_results_found {
    display: none;
    text-align: center;
    padding: 60px 20px;
    color: #999;
    background: linear-gradient(135deg, #2a2a2a 0%, #1a1a1a 100%);
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    position: relative;
    overflow: hidden;
}

.no_results_found::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, 
        transparent, 
        rgba(255, 255, 255, 0.03), 
        transparent
    );
    animation: shimmer 3s infinite;
}

@keyframes shimmer {
    0% { left: -100%; }
    100% { left: 100%; }
}

.no_results_animation {
    margin-bottom: 32px;
    position: relative;
}

.search_icon_animated {
    width: 80px;
    height: 80px;
    margin: 0 auto 20px;
    /* background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);ㄴ */
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    animation: pulse 2s ease-in-out infinite;
    /* box-shadow: 0 0 30px rgba(102, 126, 234, 0.3); */
}

.search_icon_animated i {
    font-size: 32px;
    color: #fff;
    animation: rotate 4s linear infinite;
    width: 50px;
    height: 50px;
    background: url('/images/icons/logo2.svg') center no-repeat;
    background-size: contain;
    text-indent: -9999px;
    overflow: hidden;
}

@keyframes pulse {
    0%, 100% { 
        transform: scale(1);
        /* box-shadow: 0 0 30px rgba(102, 126, 234, 0.3); */
    }
    50% { 
        transform: scale(1.1);
        /* box-shadow: 0 0 50px rgba(102, 126, 234, 0.5); */
    }
}

@keyframes rotate {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.floating_dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 16px;
}

.floating_dots span {
    width: 8px;
    height: 8px;
    background: rgba(255, 255, 255, 0.4);
    border-radius: 50%;
    animation: float 1.5s ease-in-out infinite;
}

.floating_dots span:nth-child(1) {
    animation-delay: 0s;
}

.floating_dots span:nth-child(2) {
    animation-delay: 0.3s;
}

.floating_dots span:nth-child(3) {
    animation-delay: 0.6s;
}

@keyframes float {
    0%, 100% { 
        transform: translateY(0);
        opacity: 0.4;
    }
    50% { 
        transform: translateY(-10px);
        opacity: 1;
    }
}

.no_results_content {
    position: relative;
    z-index: 1;
}

.no_results_title {
    font-size: 24px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.9);
    margin: 0 0 8px 0;
}

.no_results_subtitle {
    font-size: 16px;
    color: rgba(255, 255, 255, 0.6);
    margin: 0 0 24px 0;
    line-height: 1.5;
}

.search_suggestions {
    display: flex;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
}

.suggestion_chip {
    padding: 8px 16px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 20px;
    font-size: 14px;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.8);
    cursor: pointer;
    transition: all 0.3s ease;
}

.suggestion_chip:hover {
    background: rgba(255, 255, 255, 0.15);
    border-color: rgba(255, 255, 255, 0.3);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

/* Mobile responsive */
@media (max-width: 768px) {
    .no_results_found {
        padding: 40px 16px;
    }
    
    .search_icon_animated {
        width: 64px;
        height: 64px;
    }
    
    .search_icon_animated i {
        font-size: 24px;
        width: 24px;
        height: 24px;
        background-size: contain;
    }
    
    .no_results_title {
        font-size: 20px;
    }
    
    .no_results_subtitle {
        font-size: 14px;
    }
    
    .suggestion_chip {
        font-size: 12px;
        padding: 6px 12px;
    }
}

/* Show animation when no results */
.no_results_found.show {
    display: block;
    animation: fadeInUp 0.5s ease-out;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.score_status{
  margin-bottom: 15px;
}



/* Review Section */
.score_detail_review_wrap {
  padding: 64px 0;
}

.score_detail_review_header {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 32px;
}

.score_detail_review_header h2 {
  font-size: 16px;
  font-weight: bold;
  color: #000;
}

.score_detail_review_header .btn_write_delete {
  height: 40px;
  padding: 0 20px;
  border-radius: 20px;
  border: solid 1px #dce1e5;
  background-color: #1c232f;
  font-size: 14px;
  font-weight: 500;
  color: #fff;
  cursor: pointer;
  box-sizing: border-box;
}

.score_detail_review_list {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 24px;
  padding-bottom: 32px;
  min-height: 300px;
}

.score_detail_review_list.empty {
  display: flex;
  align-items: center;
  justify-content: center;
}

.score_detail_review_card {
  position: relative;
  padding: 24px;
  border-radius: 12px;
  border: solid 1px #dce1e5;
  background-color: #f8f9fa;
  box-sizing: border-box;
  min-height: 300px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.score_detail_review_card .profile {
  width: 48px;
  height: 48px;
  margin: 0 auto 0px;
  border-radius: 50%;
  background-color: #dce1e5;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  border: solid 1px rgba(0, 0, 0, 0.1);
  box-sizing: border-box;
}

.score_detail_review_content {
  text-align: center;
}

.star_rating {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding-bottom: 12px;
}

.star_rating .star {
  display: inline-block;
  width: 16px;
  height: 16px;
  background: url("../img/ico_star_off.svg") center no-repeat;
  background-size: contain;
}

.star_rating .star.on {
  background: url("../img/ico_star_on.svg") center no-repeat;
  background-size: contain;
}

.score_detail_review_info {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-bottom: 12px;
}

.score_detail_review_info .guest_name,
.score_detail_review_info .score_detail_review_date {
  font-size: 12px;
  color: #6c737e;
  line-height: 1.33;
}

.score_detail_review_text {
  font-size: 13px;
  line-height: 1.43;
  color: #000;
  text-align: left;
  word-break: break-word;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 5;
  -webkit-box-orient: vertical;
  margin-bottom: 12px;
  min-height:89px;
}

.score_detail_review_actions {
  display: flex;
  justify-content: flex-end;
  padding-top: 8px;
  border-top: 1px solid #e8ecef;
}

.score_detail_review_card .btn_delete {
  padding: 6px 16px;
  border-radius: 4px;
  border: solid 1px #dce1e5;
  background-color: #fff;
  font-size: 12px;
  font-weight: 500;
  color: #6c737e;
  cursor: pointer;
  transition: all 0.2s;
}

.score_detail_review_card .btn_delete:hover {
  background-color: #f8f9fa;
  color: #1c232f;
  border-color: #1c232f;
}

.score_detail_review_more {
  text-align: center;
  padding-top: 16px;
}

.score_detail_review_more .btn_more {
  display: inline-block;
  width: 108px;
  height: 40px;
  line-height: 40px;
  border-radius: 20px;
  border: solid 1px #dce1e5;
  background-color: #fff;
  font-size: 14px;
  font-weight: 500;
  color: #000;
  cursor: pointer;
  box-sizing: border-box;
}

/* Related Sheet Music Section */
.related_music_wrap {
  padding: 64px 0;
}

.related_music_wrap h2 {
  padding-bottom: 32px;
  font-size: 16px;
  font-weight: bold;
  color: #000;
}

.music_layout {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 32px;
}

.original_sidebar {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  height: fit-content;
  position: sticky;
  top: 40px;
  min-height: 280px;
}

.sidebar_bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 1;
}

.sidebar_overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.8));
  z-index: 2;
}

.sidebar_content {
  position: relative;
  padding: 32px;
  z-index: 3;
  color: #fff;
}

.sidebar_content .music_badge {
  display: inline-block;
  height: 32px;
  padding: 0 16px;
  margin-bottom: 16px;
  border-radius: 16px;
  background-color: rgba(255, 255, 255, 0.2);
  font-size: 14px;
  font-weight: 500;
  line-height: 32px;
  color: #fff;
  backdrop-filter: blur(10px);
}

.sidebar_content .music_title {
  font-size: 20px;
  font-weight: bold;
  line-height: 1.4;
  color: #fff;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

.related_list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.related_list_item {
  padding: 20px 24px;
  border-radius: 12px;
  border: solid 1px #dce1e5;
  background-color: #fff;
  display: flex;
  align-items: center;
  gap: 16px;
  transition: all 0.3s;
  cursor: pointer;
}

.related_list_item:hover {
  background-color: #f8f9fa;
  border-color: #4c545f;
}

.related_list_item .music_badge {
  height: 32px;
  padding: 0 16px;
  border-radius: 16px;
  font-size: 13px;
  font-weight: 500;
  line-height: 32px;
  flex-shrink: 0;
}

.music_badge.original {
  background-color: #e3f2fd;
  color: #1976d2;
}

.music_badge.recommend {
  background-color: #f3e5f5;
  color: #7b1fa2;
}

.music_badge.user {
  background-color: #e8f5e9;
  color: #388e3c;
}

.music_badge.ai {
  background-color: #fff3e0;
  color: #f57c00;
}

/* Score Type Badge */
.score_type_badge {
  display: inline-block;
  margin-left: 8px;
  height: 20px;
  padding: 0 10px;
  border-radius: 10px;
  font-size: 10px;
  font-weight: 500;
  line-height: 20px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  vertical-align: middle;
}

.score_type_badge.user {
  background-color: #e8f5e9;
  color: #388e3c;
}

.related_list_item .music_title {
  font-size: 15px;
  font-weight: 400;
  line-height: 1.5;
  color: #000;
  flex: 1;
}

.arrow_icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  opacity: 0.3;
  transition: all 0.3s;
}

.related_list_item:hover .arrow_icon {
  opacity: 1;
  transform: translateX(4px);
}


/* ...existing code... */

/* Payment History Tab Styles */
.payment_history {
  padding-top: 56px;
}

.payment_summary_cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 20px;
  margin-bottom: 40px;
}

.payment_summary_card {
  background: #f8f9fa;
  border: 1px solid #e9ecef;
  border-radius: 12px;
  padding: 24px;
  display: flex;
  align-items: center;
  gap: 16px;
  transition: all 0.3s ease;
}

.payment_summary_card:hover {
  background: #fff;
  border-color: #dee2e6;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.summary_icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  flex-shrink: 0;
}

.summary_icon.success {
  background: rgba(34, 197, 94, 0.1);
  color: #22c55e;
}

.summary_icon.credit {
  background: rgba(245, 158, 11, 0.1);
  color: #f59e0b;
}

.summary_icon.amount {
  background: rgba(59, 130, 246, 0.1);
  color: #3b82f6;
}

.summary_content {
  flex: 1;
}

.summary_number {
  font-size: 24px;
  font-weight: 700;
  color: #000;
  margin-bottom: 4px;
}

.summary_label {
  font-size: 14px;
  color: #6c757d;
  font-weight: 500;
}

/* Payment List Container */
.payment_list_container {
  background: #fff;
  border: 1px solid #e9ecef;
  border-radius: 16px;
  overflow: hidden;
}

.payment_list_header {
  padding: 20px 24px;
  border-bottom: 1px solid #e9ecef;
  background: #f8f9fa;
}

.payment_filter_tabs {
  display: flex;
  gap: 8px;
}

.filter_tab {
  padding: 8px 16px;
  border: none;
  border-radius: 20px;
  background: transparent;
  color: #6c757d;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
}

.filter_tab:hover {
  background: #e9ecef;
  color: #495057;
}

.filter_tab.active {
  background: #000;
  color: #fff;
}

/* Payment List Items */
.payment_list {
  padding: 0;
}

.payment_item {
  display: flex;
  align-items: center;
  padding: 24px;
  border-bottom: 1px solid #f1f3f4;
  transition: all 0.2s ease;
}

.payment_item:last-child {
  border-bottom: none;
}

.payment_item:hover {
  background: #f8f9fa;
}

.payment_main_info {
  display: flex;
  align-items: center;
  gap: 16px;
  flex: 1;
  min-width: 0;
}

.payment_icon {
  width: 48px;
  height: 48px;
  background: #f8f9fa;
  border: 1px solid #e9ecef;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  color: #6c757d;
  flex-shrink: 0;
}

.payment_details {
  min-width: 0;
  flex: 1;
}

.payment_title {
  font-size: 16px;
  font-weight: 600;
  color: #000;
  margin-bottom: 4px;
}

.payment_meta {
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: 14px;
  color: #6c757d;
}

.payment_method {
  display: flex;
  align-items: center;
  gap: 6px;
}

.payment_method i {
  font-size: 16px;
}

.payment_amount_section {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  margin-right: 32px;
  min-width: 120px;
}

.payment_credits {
  font-size: 14px;
  font-weight: 600;
  color: #22c55e;
  background: rgba(34, 197, 94, 0.1);
  padding: 4px 8px;
  border-radius: 12px;
}

.payment_amount {
  font-size: 18px;
  font-weight: 700;
  color: #000;
}

.payment_status_section {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 12px;
  min-width: 140px;
}

.payment_status_badge {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.payment_status_badge.succeeded {
  background: rgba(34, 197, 94, 0.1);
  color: #22c55e;
  border: 1px solid rgba(34, 197, 94, 0.2);
}

.payment_status_badge.pending {
  background: rgba(245, 158, 11, 0.1);
  color: #f59e0b;
  border: 1px solid rgba(245, 158, 11, 0.2);
}

.payment_status_badge.failed {
  background: rgba(239, 68, 68, 0.1);
  color: #ef4444;
  border: 1px solid rgba(239, 68, 68, 0.2);
}

.payment_actions {
  display: flex;
  gap: 8px;
}

.payment_action_btn {
  width: 32px;
  height: 32px;
  border: 1px solid #e9ecef;
  border-radius: 6px;
  background: #fff;
  color: #6c757d;
  font-size: 14px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}

.payment_action_btn:hover {
  background: #f8f9fa;
  border-color: #dee2e6;
  color: #495057;
}

/* Payment Pagination */
.payment_pagination {
  padding: 20px 24px;
  border-top: 1px solid #e9ecef;
  background: #f8f9fa;
}

/* Mobile Responsive */
@media (max-width: 768px) {
  .payment_summary_cards {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  
  .payment_item {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding: 20px;
  }
  
  .payment_main_info {
    width: 100%;
  }
  
  .payment_amount_section {
    margin-right: 0;
    align-items: flex-start;
    width: 100%;
  }
  
  .payment_status_section {
    align-items: flex-start;
    width: 100%;
    flex-direction: row;
    justify-content: space-between;
  }
  
  .payment_filter_tabs {
    flex-wrap: wrap;
  }
  
  .filter_tab {
    flex: 1;
    min-width: 70px;
    text-align: center;
  }
}

@media (max-width: 480px) {
  .payment_summary_card {
    padding: 20px;
  }
  
  .summary_icon {
    width: 40px;
    height: 40px;
    font-size: 18px;
  }
  
  .summary_number {
    font-size: 20px;
  }
  
  .payment_item {
    padding: 16px;
  }
  
  .payment_list_header {
    padding: 16px;
  }
  
  .payment_pagination {
    padding: 16px;
  }
}


.downloads_history {
  padding-top: 56px;
}

.download_summary_cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 20px;
  margin-bottom: 40px;
}

.download_summary_card {
  background: #f8f9fa;
  border: 1px solid #e9ecef;
  border-radius: 12px;
  padding: 24px;
  display: flex;
  align-items: center;
  gap: 16px;
  transition: all 0.3s ease;
}

.download_summary_card:hover {
  background: #fff;
  border-color: #dee2e6;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.summary_icon.download {
  background: rgba(74, 144, 226, 0.1);
  color: #4A90E2;
}

.summary_icon.pdf {
  background: rgba(220, 53, 69, 0.1);
  color: #dc3545;
}

.summary_icon.xml {
  background: rgba(40, 167, 69, 0.1);
  color: #28a745;
}

/* Download List Container */
.download_list_container {
  background: #fff;
  border: 1px solid #e9ecef;
  border-radius: 16px;
  overflow: hidden;
}

.download_list_header {
  padding: 20px 24px;
  border-bottom: 1px solid #e9ecef;
  background: #f8f9fa;
}

.download_filter_tabs {
  display: flex;
  gap: 8px;
}

/* Download List Items */
.download_list {
  padding: 0;
}

.download_item {
  display: flex;
  align-items: center;
  padding: 24px;
  border-bottom: 1px solid #f1f3f4;
  transition: all 0.2s ease;
}

.download_item:last-child {
  border-bottom: none;
}

.download_item:hover {
  background: #f8f9fa;
}

.download_main_info {
  display: flex;
  align-items: center;
  gap: 16px;
  flex: 1;
  min-width: 0;
}

.download_icon {
  width: 48px;
  height: 48px;
  background: #f8f9fa;
  border: 1px solid #e9ecef;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  flex-shrink: 0;
}

.download_icon.pdf {
  background: rgba(220, 53, 69, 0.1);
  color: #dc3545;
  border-color: rgba(220, 53, 69, 0.2);
}

.download_icon.xml {
  background: rgba(40, 167, 69, 0.1);
  color: #28a745;
  border-color: rgba(40, 167, 69, 0.2);
}

.download_details {
  min-width: 0;
  flex: 1;
}

.download_title {
  font-size: 16px;
  font-weight: 600;
  color: #000;
  margin-bottom: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.download_meta {
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: 14px;
  color: #6c757d;
}

.download_type {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 2px 8px;
  background: #e9ecef;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 600;
}

.download_type.pdf {
  background: rgba(220, 53, 69, 0.1);
  color: #dc3545;
}

.download_type.xml {
  background: rgba(40, 167, 69, 0.1);
  color: #28a745;
}

.download_info_section {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  margin-right: 32px;
  min-width: 120px;
}

.download_cost {
  font-size: 14px;
  font-weight: 600;
  color: #f59e0b;
  background: rgba(245, 158, 11, 0.1);
  padding: 4px 8px;
  border-radius: 12px;
}

.download_size {
  font-size: 12px;
  color: #6c757d;
}

.download_actions_section {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 12px;
  min-width: 140px;
}

.download_date {
  font-size: 12px;
  color: #6c757d;
}

.download_actions {
  display: flex;
  gap: 8px;
}

.download_action_btn {
  width: 32px;
  height: 32px;
  border: 1px solid #e9ecef;
  border-radius: 6px;
  background: #fff;
  color: #6c757d;
  font-size: 14px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}

.download_action_btn:hover {
  background: #f8f9fa;
  border-color: #dee2e6;
  color: #495057;
}

.download_action_btn.primary {
  background: #4A90E2;
  border-color: #4A90E2;
  color: #fff;
}

.download_action_btn.primary:hover {
  background: #3A7BD5;
  border-color: #3A7BD5;
}

/* Download Pagination */
.download_pagination {
  padding: 20px 24px;
  border-top: 1px solid #e9ecef;
  background: #f8f9fa;
}

.load_more_btn {
  display: block;
  width: 100%;
  max-width: 200px;
  margin: 0 auto;
  padding: 12px 24px;
  background: #fff;
  border: 1px solid #dee2e6;
  border-radius: 8px;
  color: #495057;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
}

.load_more_btn:hover {
  background: #f8f9fa;
  border-color: #adb5bd;
}

/* Mobile Responsive */
@media (max-width: 768px) {
  .download_summary_cards {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  
  .download_item {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding: 20px;
  }
  
  .download_main_info {
    width: 100%;
  }
  
  .download_info_section {
    margin-right: 0;
    align-items: flex-start;
    width: 100%;
  }
  
  .download_actions_section {
    align-items: flex-start;
    width: 100%;
    flex-direction: row;
    justify-content: space-between;
  }
  
  .download_filter_tabs {
    flex-wrap: wrap;
  }
  
  .filter_tab {
    flex: 1;
    min-width: 70px;
    text-align: center;
  }
}

@media (max-width: 480px) {
  .download_summary_card {
    padding: 20px;
  }
  
  .summary_icon {
    width: 40px;
    height: 40px;
    font-size: 18px;
  }
  
  .summary_number {
    font-size: 20px;
  }
  
  .download_item {
    padding: 16px;
  }
  
  .download_list_header {
    padding: 16px;
  }
  
  .download_pagination {
    padding: 16px;
  }
}


/* Credit History Tab Styles */
.credit_history {
  padding-top: 56px;
}

.credit_summary_cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 20px;
  margin-bottom: 40px;
}

.credit_summary_card {
  background: #f8f9fa;
  border: 1px solid #e9ecef;
  border-radius: 12px;
  padding: 24px;
  display: flex;
  align-items: center;
  gap: 16px;
  transition: all 0.3s ease;
}

.credit_summary_card:hover {
  background: #fff;
  border-color: #dee2e6;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.summary_icon.earned {
  background: rgba(34, 197, 94, 0.1);
  color: #22c55e;
}

.summary_icon.spent {
  background: rgba(239, 68, 68, 0.1);
  color: #ef4444;
}

.summary_icon.transactions {
  background: rgba(99, 102, 241, 0.1);
  color: #6366f1;
}

.credit_list_container {
  background: #fff;
  border: 1px solid #e9ecef;
  border-radius: 12px;
  overflow: hidden;
}

.credit_list_header {
  padding: 20px 24px;
  background: #f8f9fa;
  border-bottom: 1px solid #e9ecef;
}

.credit_filter_tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.credit_list {
  max-height: 600px;
  overflow-y: auto;
}

.credit_item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  border-bottom: 1px solid #e9ecef;
  transition: background-color 0.2s ease;
}

.credit_item:last-child {
  border-bottom: none;
}

.credit_item:hover {
  background-color: #f8f9fa;
}

.credit_main_info {
  display: flex;
  align-items: center;
  gap: 16px;
  flex: 1;
}

.credit_icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  flex-shrink: 0;
}

.credit_icon.earned {
  background: rgba(34, 197, 94, 0.1);
  color: #22c55e;
}

.credit_icon.spent {
  background: rgba(239, 68, 68, 0.1);
  color: #ef4444;
}

.credit_details {
  flex: 1;
  min-width: 0;
}

.credit_title {
  font-size: 15px;
  font-weight: 500;
  color: #212529;
  margin-bottom: 6px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.credit_meta {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}

.credit_date {
  font-size: 13px;
  color: #6c757d;
}

.credit_type {
  font-size: 12px;
  padding: 3px 8px;
  border-radius: 6px;
  background: #e9ecef;
  color: #495057;
  font-weight: 500;
}

.credit_amount_section {
  text-align: right;
  min-width: 120px;
}

.credit_amount {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 4px;
}

.credit_amount.earned {
  color: #22c55e;
}

.credit_amount.spent {
  color: #ef4444;
}

.credit_balance {
  font-size: 12px;
  color: #6c757d;
}

.credit_pagination {
  padding: 20px 24px;
  border-top: 1px solid #e9ecef;
  background: #f8f9fa;
  text-align: center;
}

/* Mobile Responsive */
@media (max-width: 768px) {
  .credit_summary_cards {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .credit_item {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding: 20px;
  }

  .credit_main_info {
    width: 100%;
  }

  .credit_amount_section {
    width: 100%;
    text-align: left;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  .credit_list_header {
    padding: 16px;
  }

  .credit_pagination {
    padding: 16px;
  }
}

@media (max-width: 480px) {
  .credit_summary_card {
    padding: 20px;
  }

  .summary_icon {
    width: 40px;
    height: 40px;
    font-size: 18px;
  }

  .summary_number {
    font-size: 20px;
  }

  .summary_label {
    font-size: 12px;
  }

  .credit_icon {
    width: 40px;
    height: 40px;
    font-size: 18px;
  }

  .credit_title {
    font-size: 14px;
  }

  .credit_amount {
    font-size: 15px;
  }
}


/* Refund specific styles - 크레딧 차감 표시 */
.payment_credits.refunded {
  background: rgba(239, 68, 68, 0.1);
  color: #ef4444;
  border: 1px solid rgba(239, 68, 68, 0.2);
}

/* Failed specific styles - 취소선 추가 */
.payment_credits.failed,
.payment_amount.failed {
  text-decoration: line-through;
  opacity: 0.6;
}

.payment_status_badge.refunded {
  background: rgba(156, 163, 175, 0.1);
  color: #6b7280;
  border: 1px solid rgba(156, 163, 175, 0.2);
}

.payment_status_badge.failed {
  background: rgba(239, 68, 68, 0.1);
  color: #ef4444;
  border: 1px solid rgba(239, 68, 68, 0.2);
}

/* Failed item 전체 스타일 */
.payment_item.failed {
  opacity: 0.7;
}

/* Ensemble Card Styles */
.ensemble_card {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    cursor: pointer;
    transition: all 0.3s ease;
    aspect-ratio: 1;
    background-size: cover;
    background-position: center;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 20px;
}

.ensemble_card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.7) 100%);
    z-index: 1;
}

/* Ensemble Card Label */
.ensemble_card_label {
    position: relative;
    z-index: 2;
    font-size: 20px;
    font-weight: 700;
    color: #fff;
    text-align: center;
    margin-bottom: 8px;
    text-shadow: 0 2px 4px rgba(0,0,0,0.3);
}

/* Ensemble Card Credit Badge */
.ensemble_card_credit {
    position: relative;
    z-index: 2;
    padding: 6px 16px;
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 20px;
    color: #333;
    font-size: 14px;
    font-weight: 700;
    text-align: center;
    backdrop-filter: blur(10px);
    box-shadow: 0 2px 8px rgba(0,0,0,0.2);
    display: inline-block;
    margin: 0 auto;
}

.ensemble_card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.3);
}

.ensemble_card:hover .ensemble_card_credit {
    background: rgba(74, 144, 226, 0.95);
    color: #fff;
    border-color: rgba(74, 144, 226, 0.5);
}

.ensemble_card.active {
    transform: scale(1.02);
    box-shadow: 0 8px 32px rgba(74, 144, 226, 0.4);
}


.ensemble_card.active .ensemble_card_label {
    color: #fff;
}


/* Ensemble Grid Layout */
.ensemble_grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin-bottom: 32px;
}

/* Mobile Responsive */
@media (max-width: 1200px) {
    .ensemble_grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .ensemble_grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }
    
    .ensemble_card {
        padding: 16px;
    }
    
    .ensemble_card_label {
        font-size: 18px;
    }
    
    .ensemble_card_credit {
        font-size: 13px;
        padding: 5px 14px;
    }
}

/* Pricing Section Header */
.pricing_section_header {
    text-align: center;
    margin-bottom: 40px;
    padding: 0 20px;
}

.pricing_title {
    font-size: 32px;
    font-weight: 700;
    color: #fff;
    margin-bottom: 12px;
    letter-spacing: -0.5px;
}

.pricing_subtitle {
    font-size: 16px;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.7);
    line-height: 1.6;
    max-width: 700px;
    margin: 0 auto;
}

/* Credit Pricing Section */
.credit_pricing_section {
    margin-top: 60px;
    margin-bottom: 80px;
    padding: 40px 0;
    background: rgba(255, 255, 255, 0.02);
    border-radius: 20px;
}

/* Responsive */
@media (max-width: 768px) {
    .pricing_section_header {
        margin-bottom: 32px;
        padding: 0 16px;
    }
    
    .pricing_title {
        font-size: 24px;
        margin-bottom: 8px;
    }
    
    .pricing_subtitle {
        font-size: 14px;
        line-height: 1.5;
    }
    
    .credit_pricing_section {
        margin-top: 40px;
        margin-bottom: 60px;
        padding: 24px 16px;
    }
}

@media (max-width: 480px) {
    .pricing_title {
        font-size: 20px;
    }
    
    .pricing_subtitle {
        font-size: 13px;
    }
}
.empty_state {
  text-align: center;
  padding: 40px 20px;
  color: #999;
}

.empty_message {
  font-size: 14px;
  margin: 0;
}