/* 기본 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);
}

.mainScreen_css {
    height:100%;
    overflow:scroll;
    display: block;
    overscroll-behavior: none; /* 바운스 효과 방지 */
}
.subScreen_css {
    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;
}

/* Bottom Sheet Styles */
.bottom-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 100;
    display: none;
    opacity: 0;
    transition: opacity 0.06s ease-in-out;
}

.bottom-overlay.visible {
    display: block;
    opacity: 1;
}

.bottom-sheet {
    position: fixed;
    bottom: -100%;
    left: 0;
    width: 100%;
    max-height: 100vh;
    background-color: transparent;
    z-index: 101;
    transition: bottom 0.06s ease-in-out;
    overflow: hidden;
    border-radius: 0.75rem 0.75rem 0 0;
}

.bottom-sheet.visible {
    bottom: 0;
}

#bottomSheetContent {
    width: 100%;
    height: 100%;
    overflow-y: auto;
    overscroll-behavior: none; /* 바운스 효과 방지 */
}

/* 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); }
}

/* Playbar position transition */
#playbar {
}

/* Bottom Sheet Landscape Mode Styles */
.bottom-overlay.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;
}

.bottom-sheet.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 */
.bottom-sheet.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;
}

/* CSS for pages having 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;
    left: 50%;
    translate: -50%;
    bottom: 0;
    z-index: 11;
}
.footer .menu {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-evenly;
    flex-shrink: 0;
    width: 100%;
    height: 4rem;
    position: relative;
}
.footer .menu2 {
    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;
}
.footer .album-icn {
    flex-shrink: 0;
    width: 1.875rem;
    height: 1.875rem;
    position: relative;
    overflow: visible;
}
.footer .album2 {
    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;
}
.footer .player-icn {
    flex-shrink: 0;
    width: 1.875rem;
    height: 1.875rem;
    position: relative;
    overflow: visible;
}
.footer .playlist {
    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;
}
.footer .feed4 {
    flex-shrink: 0;
    width: 1.875rem;
    height: 1.875rem;
    position: relative;
    overflow: visible;
    aspect-ratio: 1;
}
.footer .feed5 {
    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;
}
.footer .my-icn {
    flex-shrink: 0;
    width: 1.875rem;
    height: 1.875rem;
    position: relative;
    overflow: visible;
}
.footer .my2 {
    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 {
    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);
}