/* 기본 PC/가로모드 스타일 */
html {
    overscroll-behavior: none; /* 바운스 효과 방지 */
}
.appContainer {
    width: 100%;
    overscroll-behavior: none; /* 바운스 효과 방지 */
}

/* 모든 엘리먼트에 대해 스크롤바 숨기기 */
* {
    -ms-overflow-style: none;  /* IE 및 Edge */
    scrollbar-width: none;     /* Firefox */
    overscroll-behavior: none; /* 모든 요소에 바운스 효과 방지 */
}

*::-webkit-scrollbar {
    display: none;             /* Chrome, Safari, Opera */
}

html,
body {
    overscroll-behavior: none; /* 바운스 효과 방지 */
    font-size: calc(100vw / 390 * 16);
}

/* 터치 디바이스에서 오버스크롤 방지 */
body {
    touch-action: pan-x pan-y;
}

.global-screen {
    height:100%;
    overflow:scroll;
    display: none;
    overscroll-behavior: none; /* 바운스 효과 방지 */
}

a,
button,
input,
select,
h1,
h2,
h3,
h4,
h5,
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border: none;
    text-decoration: none;
    background: none;

    -webkit-font-smoothing: antialiased;
}

menu, ol, ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
}


/* Popup */
#popup {
    position: fixed;
    display: none;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    background-color: #00000052;
    z-index:101;
    justify-content: center;
    align-items: center;
}


/* Toast */
#toast {
    position: fixed;
    display: none;
    bottom: 3.2rem;
    width: 100%;
    background-color: #ffffff00;
    z-index: 200;
    justify-content: center;
}


/* Bottom Sheet Styles */
#bottomOverlay {
    position: fixed;
    display: none;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 100;
    transition: opacity 0.3s ease-in-out;
    will-change: opacity;
    opacity: 0;
    touch-action: none;
}
#bottomOverlay.visible {
    opacity: 1;
}
#bottomSheet {
    position: fixed;
    left: 0;
    bottom: -100%;
    width: 100%;
    background-color: transparent;
    z-index: 101;
    transition: bottom 0.3s ease-in-out;
    will-change: bottom;
    /* overflow: hidden; */
    border-radius: 0.75rem 0.75rem 0 0;
    touch-action: none;
}
#bottomSheet.visible {
    bottom: 0;
}
#bottomSheetContent {
    width: 100%;
    overscroll-behavior: none; /* 바운스 효과 방지 */
    touch-action: none;
}

/* Bottom Sheet Landscape Mode Styles */
#bottomOverlay.landscape-mode {
  background: rgba(0, 0, 0, 0.6);
  pointer-events: auto;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 1002;
}
#bottomSheet.landscape-mode {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  transform: none;
  border-radius: 0;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  margin: 0;
  pointer-events: none;
  bottom: auto;
  transition: none;
}
/* Bottom sheet content in landscape mode */
#bottomSheet.landscape-mode #bottomSheetContent {
  position: static;
  transform: rotate(90deg);
  transform-origin: center center;
  width: 70vh;
  height: auto;
  max-width: none;
  max-height: 80vw;
  z-index: auto;
  border-radius: 0.75rem;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
  pointer-events: auto;
  background: #ffffff;
  overflow-y: auto;
  margin: 0;
  margin-top:10vh;
}


/* Page Loader Styles */
.page-loader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #ffffff;
    z-index: 1000;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 1;
    transition: opacity 0.06s ease-in-out;
}
.page-loader.hidden {
    opacity: 0;
    pointer-events: none;
}
.loader-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}
.spinner {
    width: 2rem;
    height: 2rem;
    border: 2px solid #f3f3f3;
    border-top: 2px solid #3498db;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}
@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}


/* Playlist */
#playlist {
    position: fixed;
    display:none;
    bottom: 0;
    width: 100%;
    height: 100vh;
    background-color: #141414;
    z-index: 98;
}


/* Fotter */
#footer {
    background: var(--ma-blac-b20, #f6f6f6);
    display: flex;
    flex-direction: column;
    gap: 0;
    align-items: center;
    justify-content: flex-end;
    flex-shrink: 0;
    width: 100%;
    position: fixed;
    bottom: 0;
    z-index: 97;
}
#playbar {
    display: none;
    bottom: 0;
    width: 100%;
    /* z-index: 97; footer에 범용으로 설정하는 것으로 변경 */
    position: relative; /* fixed에서 변경 */
}
#footerNavigator {
    display: none; /* 표시하는 경우에는 flex로 설정  */
    flex-direction: row;
    align-items: center;
    justify-content: space-evenly;
    flex-shrink: 0;
    width: 100%;
    height: 4rem;
    position: relative;
}
#footerNavigator .footer-menu {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    align-items: center;
    justify-content: flex-start;
    flex-shrink: 0;
    width: 3.25rem;
    height: 3rem;
    position: relative;
}
#footerNavigator .footer-icn {
    flex-shrink: 0;
    width: 1.875rem;
    height: 1.875rem;
    position: relative;
    overflow: visible;
}
#footerNavigator .footer-text {
    color: var(--ma-blac-b80, #9c9c9c);
    text-align: center;
    font-family: var(--fonts-caption1-font-family, "SfPro-Regular", sans-serif);
    font-size: var(--fonts-caption1-font-size, 0.75rem);
    line-height: var(--fonts-caption1-line-height, 1rem);
    font-weight: var(--fonts-caption1-font-weight, 400);
    position: relative;
    align-self: stretch;
}


/* Not Found Notification */
.not-found-notification {
    margin: 30% auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
}
.not-found-notification > .not-found-textbox {
    margin: 14px auto;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.not-found-notification > .not-found-textbox > .not-found-text {
    color: var(--ma-blac-b40, #e0e0e0);
    font-family: var(--fonts-subheadline-font-family, "SfPro-Regular", sans-serif);
    font-size: var(--fonts-subheadline-font-size, 15px);
    line-height: var(--fonts-subheadline-line-height, 20px);
    letter-spacing: var(--fonts-subheadline-letter-spacing, -0.014375rem);
    font-weight: var(--fonts-subheadline-font-weight, 400);
}
.general-membership-badge {
    background: linear-gradient(91.54deg, #FFC423 0%, #FF7630 100%);
    border-radius: 0.295rem;
    padding: 0.1475rem 0.295rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-family: 'SfPro-Medium', sans-serif;
    font-size: 0.75rem;
    font-weight: 510;
    box-shadow: 
        inset -0.07375rem 0.07375rem 0.295rem rgba(255, 255, 255, 0.25),
        inset 0.1475rem -0.07375rem 0.295rem rgba(0, 0, 0, 0.25);
}