/* ── 사이드 메뉴 ── */
.side-menu {
  position: fixed;
  top: 0;
  left: 0;
  width: 80px;               /* 닫힌 상태 너비 */
  height: 100%;
  background-color: #F3F5F6;
  border-right: 10px solid #E4EAEE;
  overflow: hidden;
  transition: width 0.3s ease;
  z-index: 1000;
}
.side-menu.expanded {
  width: 280px;              /* 펼친 상태 너비 */
  display: flex;
  flex-direction: column;
}

/* ── 스크롤 영역 (지수 + 경제 일정) ── */
.scroll-area {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 0 12px 80px;      /* 아래 여백으로 토글 버튼 공간 확보 */
}

/* ── 프로필 영역 ── */
.profile-area {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;   /* 닫힌 상태엔 가운데 */
  height: 80px;
  padding: 10px;
  transition: justify-content 0.3s ease;
}
.side-menu.expanded .profile-area {
  justify-content: flex-start; /* 펼친 상태엔 왼쪽 정렬 */
  padding-left: 16px;
}

/* ── 프로필 플레이스홀더 & 로그인 버튼 ── */
.profile-placeholder,
.login-btn {
  width: 40px;
  height: 40px;
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
}
.profile-placeholder img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.login-btn img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* ── 프로필 이름 ── */
.profile-name {
  margin-left: 10px;
  font-weight: 500;
  color: #333;
  display: none;             /* 닫힌 상태엔 숨김 */
}
.side-menu.expanded .profile-name {
  display: inline-block;     /* 펼친 상태엔 보임 */
}

/* ── 별모양 버튼 (접혀있을때 - 프로필 아래) ── */
.profile-star {
  position: absolute;
  top: 50px;
  left: 50%;
  transform: translateX(-50%);
  background: none;
  border: none;
  font-size: 2em;
  cursor: pointer;
  color: gold;
  padding: 12px 20px;
  transition: color 0.2s;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
}
.profile-star:hover {
  color: orange;
}
.side-menu.expanded .profile-star {
  display: none;
}

/* ── MY 링크 ── */
.profile-my {
  position: absolute;
  right: 16px;
  display: none;             /* 닫힌 상태 숨김 */
  font-size: 13px;
  text-decoration: underline;
  color: #333;
}
.side-menu.expanded .profile-my {
  display: inline-block;     /* 펼친 상태엔 보임 */
}

/* ── 별모양 버튼 (펼쳐졌을때 - MY 왼쪽) ── */
.profile-star-expanded {
  background: none;
  border: none;
  font-size: 1.2em;
  cursor: pointer;
  color: gold;
  padding: 0;
  margin-right: 4px;
  transition: color 0.2s;
}
.profile-star-expanded:hover {
  color: orange;
}
.side-menu:not(.expanded) .profile-star-expanded {
  display: none;
}

/* ── 로그아웃 버튼 ── */
.side-menu .logout-btn {
  display: none;             /* 닫힌 상태 숨김 */
  position: relative;
  width: calc(100% - 32px);
  margin: 8px 16px 24px;
  padding: 8px 0;
  background: #E6E6E6;
  border-radius: 4px;
  text-decoration: none;
  color: #333D4B;
  font-weight: 500;
  transition: background 0.2s;
  overflow: hidden;
}
.side-menu.expanded .logout-btn {
  display: block;
}
.logout-btn:hover {
  background: #A2A2A2;
}
.logout-icon {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
}
.logout-btn span {
  display: block;
  width: 100%;
  text-align: center;
  pointer-events: none;
}

/* ── 지수 섹션 ── */
.index-section {
  opacity: 0;
  transition: opacity 0.3s ease 0.1s;
  padding: 0 12px;
}
.side-menu.expanded .index-section {
  opacity: 1;
}
.index-section h4 {
  margin: 0 0 15px;
  font-size: 1.1rem;
  color: #555;
  text-align: left;
}
.index-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.index-item {
  display: flex;
  align-items: center;
  margin-bottom: 12px;
}
.index-flag {
  width: 40px;
  margin-right: 8px;
}
.index-text {
  display: block;
  font-size: 12px;
  line-height: 1.3;
}
.index-name {
  display: block;
  margin-bottom: 4px;
  font-weight: 600;
  color: #333;
}
.index-value,
.index-change {
  display: inline-block;
  vertical-align: middle;
}
.index-change {
  margin-left: 6px;
}
.index-change.up {
  color: #e71909;
}
.index-change.down {
  color: #006633;
}

/* ── 경제 일정 섹션 ── */
.econ-section {
  opacity: 0;
  transition: opacity 0.3s ease 0.1s;
  padding: 0 12px;
  margin-top: 40px;
}
.side-menu.expanded .econ-section {
  opacity: 1;
}
.econ-section h4 {
  margin: 0 0 15px;
  font-size: 1.1rem;
  color: #555;
  text-align: left;
}
.econ-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.econ-category {
  margin-bottom: 12px;
}
.category-title {
  display: block;
  font-size: 0.95rem;
  font-weight: 600;
  color: #333;
  margin-bottom: 6px;
}
.event-list {
  list-style: none;
  padding: 0 0 0 8px;
  margin: 0;
}

/* ── 이벤트 아이템 ── */
.event-item,
.event-no-item {
  font-size: 12px;
  line-height: 1.4;
  margin-bottom: 4px;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 6px;
}
.event-flag,
.event-time,
.event-date {
  flex-shrink: 0;
  white-space: nowrap;
}
.event-flag {
  width: 20px;
  margin-right: 8px;
}
.event-time,
.event-date {
  width: 50px;
  color: #666;
}
.event-title {
  flex: 1;
  white-space: normal;
  word-break: break-word;
}
.event-no-item {
  flex: 1;
  justify-content: center;
  text-align: center;
  padding: 8px 0;
  color: #666;
}

/* ── 토글 핸들 ── */
.menu-handle {
  position: absolute;
  bottom: 20px;
  right: 5px;
  width: 60px;
  z-index: 1001;
  border: none;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: pointer;
}
.menu-handle img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.icon-open {
  display: block;
}
.icon-close {
  display: none;
}
.side-menu.expanded .icon-open {
  display: none;
}
.side-menu.expanded .icon-close {
  display: block;
}

/* ── 스크롤바 숨기기 ── */
.scroll-area {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.scroll-area::-webkit-scrollbar {
  display: none;
}

/* ── 모바일 숨김 ── */
@media (max-width: 480px) {
  .side-menu {
    display: none;
  }
}