.layout_outsideNotice__h0rnP {
  margin-bottom: 1rem;
  padding: 0.75rem 1rem;
  border: 1px solid var(--color-danger-border);
  border-radius: var(--radius-md);
  background: var(--color-danger-bg);
  color: var(--color-danger);
  font-size: 0.875rem;
}

.tooltip_tooltip__I34bf {
  position: relative;
  display: inline-flex;
}

.tooltip_content__mAtdc {
  position: absolute;
  z-index: 50;
  width: -moz-fit-content;
  width: fit-content;
  border-radius: var(--radius-md);
  padding: 0.375rem 0.75rem;
  font-size: 0.75rem;
  line-height: 1rem;
  color: var(--background);
  background-color: var(--foreground);
  text-wrap: balance;
  box-shadow: var(--shadow);
}

.tooltip_content__mAtdc[data-side="top"] {
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  margin-bottom: 0.375rem;
}

.tooltip_content__mAtdc[data-side="right"] {
  left: 100%;
  top: 50%;
  transform: translateY(-50%);
  margin-left: 0.375rem;
}

.tooltip_content__mAtdc[data-side="bottom"] {
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  margin-top: 0.375rem;
}

.tooltip_content__mAtdc[data-side="left"] {
  right: 100%;
  top: 50%;
  transform: translateY(-50%);
  margin-right: 0.375rem;
}

.button_button__TIoc7 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  white-space: nowrap;
  flex-shrink: 0;
  border-radius: var(--radius-md);
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
  outline: none;
  transition: all 150ms;
  cursor: pointer;
}

.button_button__TIoc7:disabled {
  pointer-events: none;
  opacity: 0.5;
}

.button_button__TIoc7 svg {
  pointer-events: none;
  flex-shrink: 0;
}

.button_button__TIoc7 svg:not([class*="size-"]) {
  width: 1rem;
  height: 1rem;
}

.button_button__TIoc7:focus-visible {
  border-color: var(--ring);
  box-shadow: var(--focus-ring);
}

/* variants */
.button_variantDefault__NORhQ {
  background-color: var(--primary);
  color: var(--primary-foreground);
}
.button_variantDefault__NORhQ:hover {
  background-color: color-mix(in oklab, var(--primary) 90%, transparent);
}

.button_variantDestructive__E0QYS {
  background-color: var(--destructive);
  color: var(--destructive-foreground);
}
.button_variantDestructive__E0QYS:hover {
  background-color: color-mix(
    in oklab,
    var(--destructive) 90%,
    transparent
  );
}

.button_variantOutline__az61B {
  border: 1px solid var(--border);
  background-color: var(--background);
}
.button_variantOutline__az61B:hover {
  background-color: var(--accent);
  color: var(--accent-foreground);
}

.button_variantSecondary__6awFy {
  background-color: var(--secondary);
  color: var(--secondary-foreground);
}
.button_variantSecondary__6awFy:hover {
  background-color: color-mix(in oklab, var(--secondary) 80%, transparent);
}

.button_variantGhost__hDvYr:hover {
  background-color: var(--accent);
  color: var(--accent-foreground);
}

.button_variantLink__TQosZ {
  color: var(--primary);
  text-underline-offset: 4px;
}
.button_variantLink__TQosZ:hover {
  text-decoration: underline;
}

/* sizes */
.button_sizeDefault__yCd9J {
  height: 2.25rem;
  padding: 0.5rem 1rem;
}
.button_sizeSm__Rqj_h {
  height: 2rem;
  gap: 0.375rem;
  padding: 0 0.75rem;
}
.button_sizeLg__gy7TD {
  height: 2.5rem;
  padding: 0 1.5rem;
}
.button_sizeIcon__ilOZY {
  width: 2.25rem;
  height: 2.25rem;
}
.button_sizeIconSm__bjOOO {
  width: 2rem;
  height: 2rem;
}
.button_sizeIconLg__Flhl2 {
  width: 2.5rem;
  height: 2.5rem;
}

/* CTA(대형 링크 버튼) — 공개 화면용 변형/크기 */
.button_variantPrimary__hNbw5 {
  background-color: var(--color-brand);
  color: var(--color-white);
  border: 1.5px solid var(--color-brand-hover);
}
.button_variantPrimary__hNbw5:hover {
  background-color: var(--color-brand-hover);
}

.button_variantWhite__aQUBN {
  background-color: rgba(255, 255, 255, 0.9);
  color: var(--color-brand);
  border: 2px solid var(--color-brand-hover);
  box-shadow: var(--shadow);
}
.button_variantWhite__aQUBN:hover {
  background-color: var(--color-white);
}

/* 캐러셀 좌우 이동 원형 버튼 — 랜딩 히어로/뉴스 (피그마 고유 색·치수) */
.button_variantNavHero__8sBFa {
  color: var(--color-white);
  /* 배경 위에 올리는 반투명 판(다른 구역의 카드와 같은 값). */
  background-color: var(--color-overlay-surface);
}
.button_variantNavHero__8sBFa:hover {
  background-color: var(--color-overlay-surface-strong);
}

/* 소식 화살표 — 평소엔 배경 판 없이 화살표만 둔다. 마우스를 올리면 아주
   흐린 회색 동그라미를 깔아 누를 수 있음을 알린다. 색은 쓰는 쪽에서 정한다. */
.button_variantNavNews__QO3ts {
  background-color: transparent;
  transition: background-color 150ms;
}
.button_variantNavNews__QO3ts:hover {
  background-color: color-mix(in srgb, var(--color-text) 8%, transparent);
}

/* 크기는 쓰는 쪽에서 --nav-size 로 줄일 수 있다(작은 화면용). */
.button_sizeNav__uWRaj {
  width: var(--nav-size, 77px);
  height: var(--nav-size, 77px);
  border-radius: 9999px;
}

.button_sizeHero__q9NU2 {
  height: 44px;
  padding: 0.5rem 2rem;
  border-radius: 12px;
  font-family: var(--font-brand);
  font-size: 0.875rem;
  transition: all 200ms;
}
@media (min-width: 768px) {
  .button_sizeHero__q9NU2 {
    height: 80px;
    padding: 1.5rem 4rem;
    font-size: 1.5rem;
  }
}
@media (min-width: 1024px) {
  .button_sizeHero__q9NU2 {
    height: 95px;
    padding: 31px 79px;
    font-size: 30px;
  }
}

.image_avatar__KgkYy {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 9999px;
}

.image_image__gnrP7 {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dropdown-menu_menu__PpunN {
  position: relative;
  display: inline-block;
}

.dropdown-menu_triggerWrap__bh5JD {
  display: inline-flex;
}

.dropdown-menu_content__MVP1a {
  position: absolute;
  z-index: 50;
  top: 100%;
  margin-top: 0.25rem;
  min-width: 8rem;
  overflow-x: hidden;
  overflow-y: auto;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 0.25rem;
  background-color: var(--popover);
  color: var(--popover-foreground);
  box-shadow: var(--shadow);
}

.dropdown-menu_content__MVP1a[data-side="right"] {
  top: 0;
  margin-top: 0;
  left: 100%;
  margin-left: 0.25rem;
}

.dropdown-menu_content__MVP1a[data-side="left"] {
  top: 0;
  margin-top: 0;
  right: 100%;
  margin-right: 0.25rem;
}

.dropdown-menu_content__MVP1a[data-align="start"] {
  left: 0;
}

.dropdown-menu_content__MVP1a[data-align="end"] {
  right: 0;
}

.dropdown-menu_label__dqjci {
  padding: 0.375rem 0.5rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
}

.dropdown-menu_separator__m6bBh {
  margin: 0.25rem -0.25rem;
  height: 1px;
  background-color: var(--border);
}

.dropdown-menu_item__x_R5k {
  display: flex;
  width: 100%;
  align-items: center;
  gap: 0.5rem;
  border-radius: var(--radius-sm);
  padding: 0.375rem 0.5rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  text-align: left;
  cursor: default;
  outline: none;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  background: none;
  border: none;
  color: inherit;
}

.dropdown-menu_item__x_R5k:not(.dropdown-menu_itemDisabled__rtwd_):hover,
.dropdown-menu_item__x_R5k:not(.dropdown-menu_itemDisabled__rtwd_):focus-visible {
  background-color: var(--accent);
  color: var(--accent-foreground);
}

.dropdown-menu_item__x_R5k svg {
  pointer-events: none;
  flex-shrink: 0;
}

.dropdown-menu_item__x_R5k svg:not([class*="size-"]) {
  width: 1rem;
  height: 1rem;
}

.dropdown-menu_itemActive__CdzGJ {
  color: var(--primary);
}

.dropdown-menu_itemDestructive__rAas3 {
  color: var(--destructive);
}

.dropdown-menu_itemDisabled__rtwd_ {
  pointer-events: none;
  opacity: 0.5;
}

.header_header__2Anwk {
  /* 관리자 헤더 브랜드 네이비 — globals 토큰에 없는 고유값 */
  --admin-header-bg: #001529;

  display: flex;
  height: 60px;
  align-items: center;
  justify-content: space-between;
  padding: 0 16px;
  color: var(--color-white);
  background-color: var(--admin-header-bg);
  border-bottom: 1px solid var(--border);
  box-shadow: var(--shadow);
}

.header_left__y7AUR {
  display: flex;
  align-items: center;
  gap: 12px;
}

.header_brand__VErSQ {
  display: flex;
  align-items: center;
  gap: 12px;
}

.header_logo__jey1W {
  position: relative;
  display: none;
  width: 36px;
  height: 36px;
  overflow: hidden;
  border-radius: 9999px;
  background-color: var(--color-white);
}

.header_logoImage__tOT1v {
  object-fit: contain;
  padding: 6px;
}

.header_brandText__R0u1L {
  display: none;
}

.header_brandTitle__wgdW3 {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.25;
  color: var(--color-white);
}

.header_brandSubtitle__18kB3 {
  font-size: 12px;
  color: color-mix(in oklab, var(--color-white) 70%, transparent);
}

.header_userText__orHtb {
  display: none;
  text-align: left;
}

.header_userName__lCmFC {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.25;
  color: var(--color-white);
}

.header_userEmail__tEUVC {
  font-size: 12px;
  color: color-mix(in oklab, var(--color-white) 70%, transparent);
}

.header_mutedIcon__ct9O8 {
  color: color-mix(in oklab, var(--color-white) 70%, transparent);
}

.header_signOutIcon__4fFYj {
  margin-right: 8px;
}

.header_userMenuContent__MZ0Te {
  width: 14rem;
}

/* 모바일 전용 (md 이상에서 숨김) */
.header_mobileOnly__98tdp {
  display: flex;
}

/* 프리미티브 override — .header 하위로 명시도 확보 */
.header_header__2Anwk .header_userButton__qIl_x {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 8px;
  color: var(--color-white);
  border-radius: 9999px;
}
.header_header__2Anwk .header_userButton__qIl_x:hover {
  background-color: color-mix(
    in oklab,
    var(--color-white) 10%,
    transparent
  );
}

.header_header__2Anwk .header_avatar__FPl3H {
  width: 36px;
  height: 36px;
  color: var(--color-white);
  background-color: color-mix(in oklab, var(--primary) 20%, transparent);
}

@media (min-width: 768px) {
  .header_header__2Anwk {
    padding-left: 24px;
    padding-right: 24px;
  }

  .header_mobileOnly__98tdp {
    display: none;
  }

  .header_logo__jey1W,
  .header_brandText__R0u1L,
  .header_userText__orHtb {
    display: block;
  }
}

/* ── 확장형 메뉴 ── */
.sidebar-menu_menuButton__VDXPI {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  padding: 8px 12px;
  font-size: 14px;
  border-radius: 8px;
  transition: all 150ms;
}

.sidebar-menu_active__uIYCn {
  font-weight: 600;
  color: var(--primary);
  background-color: color-mix(in oklab, var(--primary) 10%, transparent);
}

.sidebar-menu_inactive___51WR {
  color: var(--muted-foreground);
}
.sidebar-menu_inactive___51WR:hover {
  color: var(--foreground);
  background-color: var(--muted);
}

.sidebar-menu_menuButtonLabel__FwOvD {
  display: flex;
  align-items: center;
  gap: 8px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sidebar-menu_truncate__FF_x5 {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sidebar-menu_menuIcon__dDJrx {
  width: 16px;
  height: 16px;
}

.sidebar-menu_chevron__BRICW {
  transition: transform 150ms;
}
.sidebar-menu_chevronOpen__rNMw2 {
  transform: rotate(90deg);
}

.sidebar-menu_menuList__LJzLE {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.sidebar-menu_nested__806H6 {
  padding-left: 16px;
  border-left: 1px solid
    color-mix(in oklab, var(--border) 40%, transparent);
}

.sidebar-menu_subWrap__dajh6 {
  padding-top: 4px;
}

/* ── 접힌 메뉴 ── */
.sidebar-menu_collapsedIcon__bGD8f {
  width: 20px;
  height: 20px;
}

.sidebar-menu_collapsedList___peS7 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

/* ── 사이드바 셸 ── */
.sidebar-menu_sidebar__g1dGX {
  position: absolute;
  height: calc(100% - 60px);
  z-index: 10;
  background-color: var(--background);
  border-right: 1px solid var(--border);
  box-shadow: var(--shadow);
  transition: all 300ms;
}
.sidebar-menu_collapsed__nMrRW {
  width: 72px;
}
.sidebar-menu_expanded__m4T3K {
  width: 240px;
}
.sidebar-menu_hiddenOnMobile__d3U88 {
  display: none;
}

.sidebar-menu_scroll__qzAvK {
  flex: 1 1;
  overflow-y: auto;
  padding: 16px;
}

.sidebar-menu_expandedMenu__WfkP3 {
  font-size: 14px;
  color: var(--foreground);
}

.sidebar-menu_collapseFooter__Ze2M0 {
  padding: 4px;
  border-top: 1px solid var(--border);
}

/* 프리미티브 override — .sidebar 하위로 명시도 확보 */
.sidebar-menu_sidebar__g1dGX .sidebar-menu_iconButton__gxzy3 {
  width: 40px;
  height: 40px;
  border-radius: 8px;
}

.sidebar-menu_sidebar__g1dGX .sidebar-menu_collapseToggle__AEhyH {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding-left: 12px;
  padding-right: 12px;
  font-size: 14px;
  font-weight: 500;
  border-radius: 8px;
}

@media (min-width: 768px) {
  .sidebar-menu_sidebar__g1dGX {
    position: relative;
    display: flex;
    flex-direction: column;
    height: auto;
    box-shadow: none;
  }
}

.breadcrumb_list__cZEV_ {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: var(--muted-foreground);
  word-break: break-word;
}

@media (min-width: 640px) {
  .breadcrumb_list__cZEV_ {
    gap: 0.625rem;
  }
}

.breadcrumb_item__juLy3 {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
}

.breadcrumb_link__ks8Ic {
  transition: color 150ms;
}

.breadcrumb_link__ks8Ic:hover {
  color: var(--foreground);
}

.breadcrumb_current__EiTor {
  color: var(--foreground);
  font-weight: 400;
}

.breadcrumb_separator__KijOd {
  display: inline-flex;
  align-items: center;
}

.breadcrumb_separator__KijOd > svg {
  width: 0.875rem;
  height: 0.875rem;
}

/* 사진이 오기 전에도 구역 색이 보이도록 색조를 바탕에 깔아 둔다. */
.section-backdrop_backdrop__wrw_y {
  position: absolute;
  inset: 0;
  background-color: var(--color-section-tint);
  pointer-events: none;
}
.section-backdrop_image__dyzRS {
  object-fit: cover;
}
/* 흑백·컬러 어느 사진이든 같은 색조로 물들도록 색을 곱해 덮는다. */
.section-backdrop_tint__0V7_q {
  position: absolute;
  inset: 0;
  background-color: var(--color-section-tint);
  mix-blend-mode: multiply;
}
.section-backdrop_shade__IijAp {
  position: absolute;
  inset: 0;
}
.section-backdrop_shadeLight__lCVzK {
  background-color: rgba(0, 0, 0, 0.15);
}
.section-backdrop_shadeStrong__2rTWX {
  background-color: rgba(0, 0, 0, 0.35);
}

.hero-section_section__wtFDi {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 600px;
  overflow: hidden;
}

.hero-section_content__tCGoW {
  position: relative;
  z-index: 10;
  width: 100%;
  max-width: 1920px;
  margin: 0 auto;
  padding: 48px 24px;
  overflow: hidden;
}

/* 손가락으로 좌우로 밀 수 있게 하되, 세로 스크롤은 그대로 둔다. */
.hero-section_viewport__1ZVn9 {
  overflow: hidden;
  touch-action: pan-y;
}
/* 나가는 장과 들어오는 장이 함께 옆으로 미끄러진다. 한 장이 칸 하나를
   꽉 채우므로 -100% 가 정확히 한 장이다. 미는 동안은 손가락을 따라간다. */
.hero-section_track__aXdTQ {
  display: flex;
  transform: translateX(calc(var(--active) * -100% + var(--drag, 0px)));
  transition: transform 500ms ease;
}
/* 되감기는 순간과 미는 동안에는 움직임을 끈다. */
.hero-section_trackStill__nYyWS {
  transition: none;
}

.hero-section_slide__wLnhK {
  flex: 0 0 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 24px;
  text-align: center;
  /* 글을 끌어 선택하는 것과 밀기가 부딪히지 않게 한다. */
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.hero-section_title__67y0F {
  width: 100%;
  font-family: var(--font-brand);
  font-weight: 500;
  color: var(--color-white);
  line-height: 1.35;
  letter-spacing: -0.025em;
  font-size: 30px;
}

.hero-section_subtitleWrap__iM0Pf {
  width: 100%;
  max-width: 64rem;
}
.hero-section_subtitle__KKTv5 {
  text-align: center;
  color: var(--color-text-light);
  font-size: 14px;
  line-height: 1.35;
}

/* 좌우 화살표 — 모든 화면 크기에서 보인다. 작은 화면에서는 버튼을 줄이고
   양 끝에서 살짝 띄운다. */
.hero-section_navPrev__YjkL6,
.hero-section_navNext__ueshX {
  --nav-size: 60px;
  --nav-edge: 5px;
  position: absolute;
  top: 50%;
  z-index: 20;
  transform: translate(-50%, -50%);
}
.hero-section_navPrev__YjkL6 {
  left: calc(var(--nav-edge) + var(--nav-size) / 2);
}
.hero-section_navNext__ueshX {
  left: calc(100% - var(--nav-edge) - var(--nav-size) / 2);
}
/* 꺾쇠는 뾰족한 쪽이 얇고 벌어진 쪽에 살이 많다. 박스를 정확히 가운데
   두면 벌어진 쪽으로 쏠려 보이므로, 뾰족한 쪽으로 조금 밀어 맞춘다. */
.hero-section_navIcon__TzAcN {
  --nav-icon-nudge: 2px;
  width: 38px;
  height: 38px;
  color: var(--color-white);
  transform: translateX(var(--nav-icon-nudge));
}
.hero-section_navIconLeft__PQHNY {
  transform: translateX(calc(-1 * var(--nav-icon-nudge))) rotate(180deg);
}

.hero-section_indicators__0ZniJ {
  position: absolute;
  bottom: 32px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 20;
  display: flex;
  gap: 12px;
}
.hero-section_dot__7cwJb {
  width: 12px;
  height: 12px;
  border-radius: 9999px;
  transition: all 300ms;
}
.hero-section_dotActive__ssgSU {
  width: 32px;
  background-color: var(--color-white);
}
.hero-section_dotInactive__vFAJx {
  background-color: rgba(255, 255, 255, 0.5);
}
.hero-section_dotInactive__vFAJx:hover {
  background-color: rgba(255, 255, 255, 0.75);
}

@media (min-width: 768px) {
  .hero-section_section__wtFDi {
    height: 700px;
  }
  .hero-section_content__tCGoW {
    padding: 64px 64px;
  }
  .hero-section_slide__wLnhK {
    gap: 28px;
  }
  .hero-section_title__67y0F {
    line-height: 1.38;
    font-size: 48px;
  }
  .hero-section_subtitle__KKTv5 {
    font-size: 16px;
    line-height: 1.38;
  }
  .hero-section_navPrev__YjkL6,
  .hero-section_navNext__ueshX {
    --nav-size: 68px;
    --nav-edge: 16px;
  }
  .hero-section_navIcon__TzAcN {
    width: 44px;
    height: 44px;
  }
}

@media (min-width: 1024px) {
  .hero-section_section__wtFDi {
    height: 750px;
  }
  .hero-section_content__tCGoW {
    padding: 80px 192px;
  }
  .hero-section_slide__wLnhK {
    gap: 32px;
  }
  .hero-section_title__67y0F {
    line-height: 1.4;
    font-size: 70px;
    letter-spacing: -2.1px;
  }
  .hero-section_subtitle__KKTv5 {
    font-size: 24px;
    line-height: 1.4;
  }
  .hero-section_navPrev__YjkL6,
  .hero-section_navNext__ueshX {
    --nav-size: 77px;
    --nav-edge: 24px;
  }
  .hero-section_navIcon__TzAcN {
    --nav-icon-nudge: 3px;
    width: 49px;
    height: 49px;
  }
}

@media (min-width: 1280px) {
  .hero-section_navPrev__YjkL6,
  .hero-section_navNext__ueshX {
    --nav-edge: 64px;
  }
}

/* Tailwind utilities 레이어보다 낮게 두어, 소비자 className(text-*, leading-*)이
   level 기본 크기를 덮을 수 있게 한다. */
@layer components {
  .heading_heading__uwJou {
    --heading-dark: var(--color-text);

    font-family: var(--font-brand);
    font-style: normal;
  }

  /* level */
  .heading_level1__aAs3e {
    font-size: 70px;
    line-height: 1.4;
    letter-spacing: -2.1px;
  }
  .heading_level2__yNZTY {
    font-size: 70px;
    line-height: 88px;
  }
  .heading_level3__gVGXq {
    font-size: 34px;
    line-height: 1.4;
  }
  .heading_level4__QM4u0 {
    font-size: 32px;
    line-height: 1.2;
  }

  /* weight */
  .heading_weightRegular__NpYM0 {
    font-weight: 400;
  }
  .heading_weightMedium__BMgcz {
    font-weight: 500;
  }
  .heading_weightSemibold__sWEsS {
    font-weight: 600;
  }
  .heading_weightBold__BilqN {
    font-weight: 700;
  }

  /* color */
  .heading_colorWhite__aqzIt {
    color: var(--color-white);
  }
  .heading_colorDark__Rh3UX {
    color: var(--heading-dark);
  }
}

/* NewsCard */
.component_card__6eND0 {
  flex: 1 1;
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  position: relative;
  background: var(--card);
  /* 위쪽 사진이 카드에 꽉 차므로 넘치는 부분을 잘라 사진 모서리도 카드를
     따라 둥글어지게 한다. */
  border-radius: 0.75rem;
  overflow: hidden;
  cursor: pointer;
  text-align: left;
  transition: box-shadow 0.2s;
}

.component_card__6eND0:hover {
  box-shadow: var(--shadow);
}

/* CardImage */
.component_imageBox__LHl2G {
  position: relative;
  width: 100%;
  overflow: hidden;
  /* Figma 원본 비율 */
  aspect-ratio: 280.333344 / 194.693359;
}

.component_placeholder__MUMCr {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-surface-subtle);
}

.component_placeholderIcon__iMWrV {
  width: 4rem;
  height: 4rem;
  color: var(--color-text-light);
}

.component_image__zWPCf {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* CardBody */
.component_bodyWrap__LRBfz {
  position: relative;
  width: 100%;
  height: 100%;
}

.component_body__L67mm {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 16px;
  height: 100%;
  padding: 20px 24px;
}

.component_titleDesc__jlK_g {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-start;
  width: 100%;
}

.component_title__vOuVz {
  margin: 0;
  font-family: var(--font-brand);
  font-weight: 500;
  font-size: 20px;
  line-height: 1.4;
  color: var(--color-text);
}

.component_description__tJ9aO {
  margin: 0;
  font-family: var(--font-brand);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.4;
  color: rgba(0, 0, 0, 0.6);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.component_readMore__z6yCT {
  display: flex;
  gap: 8px;
  align-items: center;
  transition: opacity 0.2s;
}

.component_readMore__z6yCT:hover {
  opacity: 0.7;
}

.component_readMoreText__v_3Og {
  font-family: var(--font-brand);
  font-weight: 400;
  font-size: 14px;
  line-height: 1.4;
  color: var(--color-brand);
  white-space: pre;
}

.component_readMoreIcon__w2n02 {
  width: 16px;
  height: 16px;
  color: var(--color-brand);
}

.news-section_section__GuHxe {
  width: 100%;
  padding: 64px 0;
  background-color: var(--color-surface-subtle);
}
.news-section_inner__cxMpS {
  display: flex;
  flex-direction: column;
  gap: 40px;
  max-width: 1920px;
  margin: 0 auto;
}
.news-section_titleWrap__f56G_ {
  text-align: center;
}
.news-section_title__E0lvh {
  font-size: 24px;
  line-height: 1.4;
  letter-spacing: -0.72px;
}

.news-section_carousel__otikU {
  /* 슬라이드 한 장의 너비와 사이 간격, 옆 카드로 줄어드는 비율.
     화살표 위치도 이 값으로 잡아 가운데 카드 옆에 붙는다. */
  --slide-width: 280px;
  --slide-gap: 16px;
  --slide-shrink: 0.86;
  --slide-move: 420ms;
  position: relative;
}
/* 좁은 화면에서는 버튼이 카드를 가려 감춘다. 대신 손가락으로 밀어 넘긴다.
   자리가 생기는 넓은 화면에서만 카드 사이에 놓는다. */
.news-section_navPrev__sb8VO,
.news-section_navNext__c9BnA {
  display: none;
  position: absolute;
  top: 50%;
  z-index: 10;
  transform: translate(-50%, -50%);
}
/* 배경 판 없이 화살표만 둔다. 꺾쇠는 뾰족한 쪽이 얇고 벌어진 쪽에 살이
   많아 박스를 정확히 가운데 두면 쏠려 보이므로, 뾰족한 쪽으로 조금 민다. */
.news-section_navIcon__kQSum {
  --nav-icon-nudge: 3px;
  width: 49px;
  height: 49px;
  color: var(--color-text);
  transform: translateX(var(--nav-icon-nudge));
}
.news-section_navIconLeft__dASIp {
  transform: translateX(calc(-1 * var(--nav-icon-nudge))) rotate(180deg);
}

/* 가운데 위치(--active)는 화면에서 인라인으로 넣는다.
   손가락으로 좌우로 밀 수 있게 하되 세로 스크롤은 그대로 둔다. */
.news-section_viewport__NrAfP {
  overflow: hidden;
  touch-action: pan-y;
}

/* 왼쪽 끝을 화면 가운데로 옮겨 두고, 거기서 활성 카드의 절반과
   지나온 카드 수만큼 되돌려 활성 카드를 가운데에 세운다. */
.news-section_track__IC_zB {
  display: flex;
  gap: var(--slide-gap);
  margin-left: 50%;
  transform: translateX(
    calc(
      -1 *
        (
          var(--slide-width) / 2 + var(--active) *
            (var(--slide-width) + var(--slide-gap))
        ) +
        var(--drag, 0px)
    )
  );
  transition: transform var(--slide-move) ease;
}
/* 마지막에서 처음으로 돌 때 카드 수만큼 되감기는 모양을 감춘다. */
.news-section_trackStill__nhUtb {
  transition: none;
}

.news-section_slide__4Abga {
  flex: 0 0 var(--slide-width);
  /* 글·이미지를 끌어 선택하는 것과 밀기가 부딪히지 않게 한다. */
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  transform: scale(var(--slide-shrink));
  opacity: 0.55;
  transition:
    transform var(--slide-move) ease,
    opacity var(--slide-move) ease;
}
/* 가운데 카드만 원래 크기로 둔다. */
.news-section_slideActive__VBzAc {
  transform: scale(1);
  opacity: 1;
}

@media (min-width: 768px) {
  .news-section_section__GuHxe {
    padding: 80px 0;
  }
  .news-section_inner__cxMpS {
    gap: 48px;
  }
  .news-section_title__E0lvh {
    font-size: 48px;
  }
  .news-section_carousel__otikU {
    --slide-width: 420px;
    /* 화살표(77px)가 카드 사이에 들어갈 만큼 벌린다. */
    --slide-gap: 96px;
  }
  /* 자리가 생기면 보이게 하고, 가운데 카드와 옆 카드 사이 빈 자리에 놓는다.
     --nav-lift 만큼 가운데 카드에서 더 떨어뜨린다. */
  .news-section_navPrev__sb8VO,
  .news-section_navNext__c9BnA {
    display: block;
    --nav-lift: 5px;
  }
  .news-section_navPrev__sb8VO {
    left: calc(
      50% - var(--slide-width) / 2 - var(--slide-gap) / 2 - var(--nav-lift)
    );
  }
  .news-section_navNext__c9BnA {
    left: calc(
      50% + var(--slide-width) / 2 + var(--slide-gap) / 2 + var(--nav-lift)
    );
  }
}

@media (min-width: 1024px) {
  .news-section_section__GuHxe {
    padding: 112px 0;
  }
  .news-section_inner__cxMpS {
    gap: 64px;
  }
  .news-section_title__E0lvh {
    font-size: 60px;
  }
  .news-section_carousel__otikU {
    --slide-width: 520px;
    --slide-gap: 112px;
    --slide-shrink: 0.82;
  }
}

.online-learning-section_section__r5WN3 {
  position: relative;
  width: 100%;
  padding: 64px 0;
}

.online-learning-section_inner__tQfC9 {
  position: relative;
  z-index: 10;
  display: flex;
  flex-direction: column;
  gap: 40px;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px;
}

.online-learning-section_intro___CzCO {
  display: flex;
  flex-direction: column;
  gap: 16px;
  text-align: center;
}
.online-learning-section_title__8KRgT {
  font-size: 28px;
}
.online-learning-section_subtitle__YhIrF {
  max-width: 880px;
  margin: 0 auto;
  font-size: 14px;
  line-height: 1.7;
}

.online-learning-section_cards__xmq4q {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 16px;
  gap: 16px;
}
/* 배경이 비쳐 보이는 판 — 다른 구역의 화살표·카드와 같은 값을 쓴다. */
.online-learning-section_card__FdECc {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 28px 20px;
  text-align: center;
  background-color: var(--color-overlay-surface);
  border-radius: var(--radius-lg);
}
.online-learning-section_iconCircle__4ja7i {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 9999px;
  background-color: var(--color-overlay-surface-strong);
}
.online-learning-section_icon__3tIzM {
  width: 26px;
  height: 26px;
  color: var(--color-white);
}
.online-learning-section_cardTitle__6ryMD {
  font-family: var(--font-brand);
  font-weight: 500;
  font-size: 20px;
  color: var(--color-white);
}
.online-learning-section_cardDescription__NRdrG {
  font-family: var(--font-brand);
  font-weight: 300;
  font-size: 13px;
  line-height: 1.6;
  color: var(--color-text-light);
}

/* 시작 단추 — 카드 아래에 가로로 넓게 놓인다(피그마 고유 색·치수). */
.online-learning-section_startButton__vznth {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 52px;
  font-family: var(--font-brand);
  font-weight: 700;
  font-size: 16px;
  color: var(--color-brand);
  background-color: rgba(255, 255, 255, 0.9);
  border: 1.131px solid var(--color-brand-hover);
  border-radius: 6.785px;
  transition: background-color 150ms;
}
.online-learning-section_startButton__vznth:hover {
  background-color: var(--color-white);
}

@media (min-width: 768px) {
  .online-learning-section_section__r5WN3 {
    padding: 96px 0;
  }
  .online-learning-section_inner__tQfC9 {
    gap: 48px;
    padding: 0 48px;
  }
  .online-learning-section_cards__xmq4q {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
  .online-learning-section_title__8KRgT {
    font-size: 40px;
  }
  .online-learning-section_subtitle__YhIrF {
    font-size: 16px;
  }
}

@media (min-width: 1024px) {
  .online-learning-section_inner__tQfC9 {
    gap: 56px;
    padding: 0 64px;
  }
  .online-learning-section_cards__xmq4q {
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
  }
  .online-learning-section_title__8KRgT {
    font-size: 48px;
  }
}

.partners-section_section__t2d5C {
  /* 시안의 옅은 파랑 — 브랜드 남색을 아주 옅게 섞어 만든다. */
  --partners-surface: color-mix(in srgb, var(--color-brand) 6%, white);
  width: 100%;
  padding: 64px 24px;
  background-color: var(--partners-surface);
}
.partners-section_inner__Kgmlb {
  display: flex;
  flex-direction: column;
  /* 시안은 제목이 카드에 붙어 있다. */
  gap: 20px;
  max-width: 1920px;
  margin: 0 auto;
}
.partners-section_titleWrap__lgUU4 {
  text-align: left;
}
.partners-section_title___EuI1 {
  font-size: 30px;
}
.partners-section_grid__3V01m {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 24px;
  gap: 24px;
}

/* 로고는 관리자가 올린다. 어떤 비율이 와도 같은 상자 안에
   비율 그대로 들어가도록 한 곳에서만 크기를 정한다. */
.partners-section_logoBox__vlK4g {
  position: relative;
  width: 204px;
  height: 53px;
}
.partners-section_logoImage__B8L_I {
  object-fit: contain;
}

@media (min-width: 768px) {
  .partners-section_section__t2d5C {
    padding: 80px 48px;
  }
  .partners-section_inner__Kgmlb {
    gap: 24px;
  }
  .partners-section_title___EuI1 {
    font-size: 48px;
  }
  .partners-section_grid__3V01m {
    grid-template-columns: repeat(2, 1fr);
    gap: 32px;
  }
}

@media (min-width: 1024px) {
  .partners-section_section__t2d5C {
    padding: 96px;
  }
  .partners-section_inner__Kgmlb {
    gap: 28px;
  }
  .partners-section_title___EuI1 {
    font-size: 70px;
    line-height: 88px;
  }
  .partners-section_grid__3V01m {
    grid-template-columns: repeat(4, 1fr);
  }
}

.virtual-showroom-section_section__ettGW {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 400px;
  overflow: hidden;
}

.virtual-showroom-section_content___FAZu {
  position: relative;
  z-index: 10;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  width: 100%;
  max-width: 1920px;
  margin: 0 auto;
  padding: 0 24px;
  text-align: center;
}
.virtual-showroom-section_title__lWzdr {
  font-size: 30px;
}
.virtual-showroom-section_button__B_YE5 {
  width: 100%;
  max-width: 24rem;
}

@media (min-width: 768px) {
  .virtual-showroom-section_section__ettGW {
    height: 450px;
  }
  .virtual-showroom-section_content___FAZu {
    gap: 48px;
    padding: 0 48px;
  }
  .virtual-showroom-section_title__lWzdr {
    font-size: 48px;
  }
}

@media (min-width: 1024px) {
  .virtual-showroom-section_section__ettGW {
    height: 500px;
  }
  .virtual-showroom-section_content___FAZu {
    gap: 64px;
    padding: 0 96px;
  }
  .virtual-showroom-section_title__lWzdr {
    font-size: 70px;
    line-height: 88px;
    letter-spacing: -2.1px;
  }
}

/* PartnerCard */
.component_card__IAu7C {
  display: flex;
  flex: 1 1;
  flex-direction: column;
  gap: 40px;
  align-items: flex-start;
  min-width: 0;
  min-height: 0;
}

/* 주소가 있으면 카드 전체가 링크다. 링크임을 알리는 글자가 없으므로
   마우스를 올렸을 때 살짝 떠오르게 해 누를 수 있음을 알린다. */
.component_cardLink__f6_cm {
  text-decoration: none;
  transition:
    transform 0.2s,
    box-shadow 0.2s;
}
.component_cardLink__f6_cm:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow);
}

/* LogoBox */
.component_logoBox__Xfvpz {
  position: relative;
  width: 100%;
  height: 294px;
  min-width: 240px;
  background: var(--card);
  box-shadow: var(--shadow);
  transition: box-shadow 0.2s;
}

.component_logoInner__by0QU {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  padding: 0 36px;
}

.component_logo__giHj0 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  align-content: center;
  /* Figma 원본 간격 */
  gap: 7.773px;
}

/* PartnerInfo */
.component_info___aVSE {
  display: flex;
  flex-direction: column;
  gap: 24px;
  align-items: flex-start;
  width: 100%;
}

.component_name__G7IxO {
  margin: 0;
  font-family: var(--font-brand);
  font-weight: 600;
  font-size: 30px;
  line-height: 1.4;
  color: var(--color-text);
}

.component_descBox__wgHHy {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  align-content: flex-start;
  gap: 10px;
  flex: 1 1;
  width: 100%;
  padding-top: 12px;
  border-top: 1.5px solid #868686;
}

.component_description__OZxbV {
  margin: 0;
  font-family: var(--font-brand);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-text-muted);
  display: -webkit-box;
  -webkit-line-clamp: 8;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ContactItem */
.component_item__c1pj5 {
  /* 이 모듈에서만 쓰는 밝은 회색 글자 */
  --contact-fg: var(--color-border);
  /* 높이는 내용만큼만 차지한다. flex 로 늘리면 세로로 쌓인 카드 안에서
     높이가 0 으로 눌려 글자가 카드를 넘친다. */
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
  align-items: flex-start;
}

.component_title__qrttJ {
  margin: 0;
  width: 100%;
  font-family: var(--font-brand);
  font-weight: 600;
  font-size: 32px;
  line-height: 1.2;
  color: var(--contact-fg);
}

.component_valueRow__sfB_O {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  align-content: flex-start;
  gap: 10px;
  width: 100%;
}

.component_link__pHzz7,
.component_value__OTFxY {
  margin: 0;
  font-family: var(--font-brand);
  font-weight: 400;
  font-size: 20px;
  line-height: 1.4;
  color: var(--contact-fg);
}

.component_link__pHzz7 {
  min-width: 0;
}

.component_link__pHzz7:hover {
  text-decoration: underline;
}

/* Popup (root) */
.popup-item_popup__1uMWb {
  --divider: #eeeeee;
  --popup-border: #e9e8e8;
  --hover-overlay: rgba(0, 0, 0, 0.05);
  --disabled-text: #b9b9b9;

  position: absolute;
  z-index: 10000; /* 오버레이(999) 위 개별 팝업 — 대응 z 토큰 없음 */
  display: flex;
  flex-direction: column;
  min-width: 400px;
  width: auto;
  height: auto;
  background-color: var(--color-white);
  border: 1px solid var(--popup-border);
  box-shadow: var(--shadow);
}

/* lg 미만: 전체화면화 (인라인 위치 스타일 override) */
@media (max-width: 1023px) {
  .popup-item_popup__1uMWb {
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
  }
}

/* PopupTitleBar */
.popup-item_titleBar__zCNIi {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px;
  border-bottom: 1px solid var(--divider);
  pointer-events: auto;
}

.popup-item_title__6l7jo {
  flex: 9.3 1;
  margin-right: 10px;
  font-family: var(--font-brand);
  font-size: 18px;
  font-weight: 700;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
}

.popup-item_closeButton__YL5T5 {
  display: flex;
  cursor: pointer;
}

.popup-item_closeButton__YL5T5:hover {
  opacity: 0.8;
}

/* PopupContent */
.popup-item_content__ld4Jj {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  min-height: 250px;
  padding: 20px;
  overflow: auto;
  pointer-events: auto;
}

.popup-item_imageWrap___f9i3 {
  position: relative;
  width: 100%;
  height: 100%;
}

.popup-item_image__GUs3_ {
  width: 100%;
  height: auto;
}

.popup-item_contentText__A6YDM {
  margin-top: 20px;
  font-family: var(--font-brand);
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.5px;
  line-height: 21px;
  white-space: pre-wrap;
  word-break: break-word;
}

/* PopupFooter */
.popup-item_footer__G1I7m {
  display: flex;
  flex-direction: row;
  border-top: 1px solid var(--divider);
}

.popup-item_footerCellFirst__h_bgB {
  display: flex;
  flex: 1 1;
  align-items: center;
  justify-content: center;
  padding: 20px;
  border-right: 1px solid var(--divider);
  cursor: pointer;
  pointer-events: auto;
}

.popup-item_footerCellFirst__h_bgB:hover {
  background-color: var(--hover-overlay);
}

.popup-item_footerCell__GAH5V {
  display: flex;
  flex: 1 1;
  align-items: center;
  justify-content: center;
  padding: 20px;
  pointer-events: auto;
}

.popup-item_footerCellActive__g_SyV {
  cursor: pointer;
}

.popup-item_footerCellActive__g_SyV:hover {
  background-color: var(--hover-overlay);
}

.popup-item_footerCellDisabled__qVNWh {
  cursor: default;
  color: var(--disabled-text);
}

.popup-item_footerLabel__LCXb2 {
  font-family: var(--font-brand);
  font-size: 16px;
  font-weight: 500;
}

.popup-item_footerLabelMuted__WavuO {
  font-family: var(--font-brand);
  font-size: 14px;
  font-weight: 400;
}

/* PopupContainer — 전역 오버레이 */
.popup-container_overlay__d4COD {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999; /* 팝업 오버레이 — 대응 z 토큰 없음 */
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100vw;
  height: 100vh;
  overflow: auto;
  pointer-events: none;
}

.spinner_spinner__u40CI {
  width: 3rem;
  height: 3rem;
  border-radius: 9999px;
  /* 아래쪽 한 변만 brand 색 — 회전하며 원호가 도는 로딩 링 */
  border-bottom: 2px solid var(--color-brand);
  animation: spinner_spin__PxiRh 1s linear infinite;
}

@keyframes spinner_spin__PxiRh {
  to {
    transform: rotate(360deg);
  }
}

.field_input__jEQHp {
  height: 2.25rem;
  width: 100%;
  min-width: 0;
  border: 1px solid var(--input);
  border-radius: var(--radius-md);
  padding: 0.25rem 0.75rem;
  font-size: 1rem;
  line-height: 1.5rem;
  background-color: transparent;
  outline: none;
  transition:
    color 150ms,
    box-shadow 150ms;
}

.field_textarea__2ny87 {
  display: flex;
  min-height: 4rem;
  width: 100%;
  field-sizing: content;
  border: 1px solid var(--input);
  border-radius: var(--radius-md);
  padding: 0.5rem 0.75rem;
  font-size: 1rem;
  line-height: 1.5rem;
  background-color: transparent;
  outline: none;
  transition:
    color 150ms,
    box-shadow 150ms;
}

@media (min-width: 768px) {
  .field_input__jEQHp,
  .field_textarea__2ny87 {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
}

.field_input__jEQHp::placeholder,
.field_textarea__2ny87::placeholder {
  color: var(--muted-foreground);
}

.field_input__jEQHp::selection {
  background-color: var(--primary);
  color: var(--primary-foreground);
}

.field_input__jEQHp:focus-visible,
.field_textarea__2ny87:focus-visible {
  border-color: var(--ring);
  box-shadow: var(--focus-ring);
}

.field_input__jEQHp[aria-invalid="true"],
.field_textarea__2ny87[aria-invalid="true"] {
  border-color: var(--destructive);
  box-shadow: 0 0 0 3px
    color-mix(in oklab, var(--destructive) 20%, transparent);
}

.field_input__jEQHp:disabled,
.field_textarea__2ny87:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.field_input__jEQHp::-webkit-file-upload-button {
  display: inline-flex;
  height: 1.75rem;
  border: 0;
  background-color: transparent;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--foreground);
}

.field_input__jEQHp::file-selector-button {
  display: inline-flex;
  height: 1.75rem;
  border: 0;
  background-color: transparent;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--foreground);
}

.field_label__ZiwtT {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  line-height: 1;
  font-weight: 500;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.badge_badge__yu0bg {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  width: -moz-fit-content;
  width: fit-content;
  flex-shrink: 0;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 0.125rem 0.5rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 500;
  white-space: nowrap;
  margin: 0;
}

.badge_badge__yu0bg > svg {
  width: 0.75rem;
  height: 0.75rem;
  pointer-events: none;
}

.badge_badge__yu0bg[data-variant="default"] {
  border-color: transparent;
  background-color: var(--primary);
  color: var(--primary-foreground);
}

.badge_badge__yu0bg[data-variant="secondary"] {
  border-color: transparent;
  background-color: var(--secondary);
  color: var(--secondary-foreground);
}

.badge_badge__yu0bg[data-variant="destructive"] {
  border-color: transparent;
  background-color: var(--destructive);
  color: var(--destructive-foreground);
}

.badge_badge__yu0bg[data-variant="outline"] {
  color: var(--foreground);
}

.dialog_overlay__Z6qRN {
  position: fixed;
  inset: 0;
  z-index: 50;
  background-color: oklch(0 0 0 / 0.5);
}

/* 공용 헤더/제목/설명/푸터 */
.dialog_header__yLdsk {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  text-align: center;
}

.dialog_title__bjdzt {
  font-size: 1.125rem;
  line-height: 1;
  font-weight: 600;
}

.dialog_description__SiI7i {
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: var(--muted-foreground);
}

.dialog_footer__4qRiN {
  display: flex;
  flex-direction: column-reverse;
  gap: 0.5rem;
}

@media (min-width: 640px) {
  .dialog_header__yLdsk {
    text-align: left;
  }
  .dialog_footer__4qRiN {
    flex-direction: row;
    justify-content: flex-end;
  }
}

/* 닫기 버튼 */
.dialog_close__kzX0n {
  position: absolute;
  top: 1rem;
  right: 1rem;
  border-radius: 0.125rem;
  opacity: 0.7;
  transition: opacity 150ms;
  outline: none;
}

.dialog_close__kzX0n:hover {
  opacity: 1;
}

.dialog_close__kzX0n:focus-visible {
  box-shadow:
    0 0 0 2px var(--background),
    0 0 0 4px var(--ring);
}

.dialog_close__kzX0n:disabled {
  pointer-events: none;
}

.dialog_iconLg__HDANy {
  width: 1.75rem;
  height: 1.75rem;
}

.dialog_iconSm__BrLEL {
  width: 1rem;
  height: 1rem;
}

/* Modal */
.dialog_modal__7HSAo {
  position: fixed;
  top: 50%;
  left: 50%;
  z-index: 50;
  display: grid;
  width: 100%;
  max-width: 32rem;
  transform: translate(-50%, -50%);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.5rem;
  background-color: var(--background);
  box-shadow: var(--shadow);
}

@media (min-width: 768px) {
  .dialog_modal__7HSAo {
    max-width: 64rem;
  }
}

/* ConfirmDialog */
.dialog_confirm__M_2qB {
  position: fixed;
  top: 50%;
  left: 50%;
  z-index: 50;
  display: grid;
  width: 100%;
  max-width: calc(100% - 2rem);
  transform: translate(-50%, -50%);
  grid-gap: 1rem;
  gap: 1rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.5rem;
  background-color: var(--background);
  box-shadow: var(--shadow);
}

@media (min-width: 640px) {
  .dialog_confirm__M_2qB {
    max-width: 32rem;
  }
}

/* Sheet */
.dialog_sheet__yo6DS {
  position: fixed;
  z-index: 50;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  background-color: var(--background);
  box-shadow: var(--shadow);
}

.dialog_sheet__yo6DS[data-side="right"] {
  top: 0;
  bottom: 0;
  right: 0;
  height: 100%;
  width: 75%;
  border-left: 1px solid var(--border);
}

.dialog_sheet__yo6DS[data-side="left"] {
  top: 0;
  bottom: 0;
  left: 0;
  height: 100%;
  width: 75%;
  border-right: 1px solid var(--border);
}

.dialog_sheet__yo6DS[data-side="top"] {
  left: 0;
  right: 0;
  top: 0;
  height: auto;
  border-bottom: 1px solid var(--border);
}

.dialog_sheet__yo6DS[data-side="bottom"] {
  left: 0;
  right: 0;
  bottom: 0;
  height: auto;
  border-top: 1px solid var(--border);
}

@media (min-width: 640px) {
  .dialog_sheet__yo6DS[data-side="right"],
  .dialog_sheet__yo6DS[data-side="left"] {
    max-width: 24rem;
  }
}

.dialog_sheetHeader__7k800 {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  padding: 1rem 1.5rem;
  text-align: left;
}

.dialog_sheetTitle__RVppP {
  color: var(--foreground);
  font-weight: 600;
}

/* 화면에는 숨기고 보조기술에만 노출 */
.dialog_srOnly__o9ODs {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

/* 퀴즈 완료 다이얼로그 */
.quiz-complete-dialog_modal__ozgqx {
  max-width: 28rem;
}

.quiz-complete-dialog_body__ra2g7 {
  padding: 24px 0;
  text-align: center;
}

.quiz-complete-dialog_score__NjUwm {
  margin-bottom: 8px;
  font-size: 24px;
  font-weight: 700;
}

.quiz-complete-dialog_percent__FzUw5 {
  color: var(--color-text-muted);
}

.quiz-complete-dialog_footer__PTHMX {
  display: flex;
  flex-direction: column-reverse;
  gap: 8px;
}

@media (min-width: 640px) {
  .quiz-complete-dialog_footer__PTHMX {
    flex-direction: row;
    justify-content: flex-end;
  }
}

/* 퀴즈 질문 다이얼로그 */
.quiz-question-dialog_modal__CMY51 {
  max-width: 48rem;
  max-height: 90vh;
  overflow-y: auto;
}

.quiz-question-dialog_body__qTqVf {
  padding: 24px 0;
}

.quiz-question-dialog_progress__0uKtI {
  display: flex;
  gap: 8px;
  margin-bottom: 24px;
}

.quiz-question-dialog_progressItem__SUQEo {
  flex: 1 1;
  height: 8px;
  background-color: var(--color-border);
  border-radius: var(--radius-sm);
}

.quiz-question-dialog_progressCurrent__YlaeC {
  background-color: var(--info);
}

.quiz-question-dialog_progressAnswered__rdUrJ {
  background-color: var(--success);
}

.quiz-question-dialog_screenReader__q5FGn {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.quiz-question-dialog_questionSection__F9tCV {
  margin-bottom: 24px;
}

.quiz-question-dialog_questionTitle__OAg0J {
  margin-bottom: 16px;
  font-size: 18px;
  font-weight: 600;
}

.quiz-question-dialog_options__6NNyO {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.quiz-question-dialog_option__DeX91 {
  width: 100%;
  padding: 16px;
  text-align: left;
  border: 2px solid var(--color-border);
  border-radius: var(--radius-lg);
  transition:
    border-color 150ms,
    background-color 150ms;
}

.quiz-question-dialog_option__DeX91:hover {
  border-color: var(--color-text-light);
}

.quiz-question-dialog_optionSelected__Go4Nz {
  border-color: var(--info);
  background-color: color-mix(
    in oklab,
    var(--info) 10%,
    var(--color-white)
  );
}

.quiz-question-dialog_optionContent__CZWlD {
  display: flex;
  align-items: center;
  gap: 12px;
}

.quiz-question-dialog_answerIndicator__9jk8d {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border: 2px solid var(--color-text-light);
  border-radius: 9999px;
}

.quiz-question-dialog_answerIndicatorSelected__qrbzv {
  background-color: var(--info);
  border-color: var(--info);
}

.quiz-question-dialog_answerDot__dm3sx {
  width: 8px;
  height: 8px;
  background-color: var(--color-white);
  border-radius: 9999px;
}

.quiz-question-dialog_navigation__91hFQ {
  display: flex;
  justify-content: space-between;
}

/* 설문 완료 다이얼로그 */
.survey-complete-dialog_modal__j7qYh {
  max-width: 28rem;
}

.survey-complete-dialog_body__Oqk0_ {
  padding: 24px 0;
  text-align: center;
}

.survey-complete-dialog_title__9LrJV {
  font-size: 18px;
}

.survey-complete-dialog_text__ArLaM {
  margin-top: 8px;
  color: var(--color-text-muted);
}

.survey-complete-dialog_footer__SHzgi {
  display: flex;
  flex-direction: column-reverse;
  gap: 8px;
}

@media (min-width: 640px) {
  .survey-complete-dialog_footer__SHzgi {
    flex-direction: row;
    justify-content: flex-end;
  }
}

/* 설문 응답 다이얼로그 */
.survey-form-dialog_modal__Li8HE {
  max-width: 56rem;
  max-height: 90vh;
  overflow-y: auto;
}

.survey-form-dialog_titleText__xm5QS {
  font-size: 20px;
}

.survey-form-dialog_content__1MYzR {
  display: flex;
  flex-direction: column;
  gap: 32px;
  padding: 24px 0;
}

.survey-form-dialog_tableWrap__9OIlV {
  overflow-x: auto;
}

.survey-form-dialog_table__NfYjn {
  width: 100%;
  border-collapse: collapse;
}

.survey-form-dialog_headRow__FmlRk {
  border-bottom: 1px solid var(--color-border);
}

.survey-form-dialog_th__411dB {
  padding: 12px;
  background-color: var(--color-surface-subtle);
}

.survey-form-dialog_thQuestion__BHT_P {
  text-align: left;
}

.survey-form-dialog_thReview__IDCjV {
  min-width: 100px;
  text-align: center;
}

.survey-form-dialog_bodyRow__UepHT {
  border-bottom: 1px solid var(--color-border);
}

.survey-form-dialog_bodyRow__UepHT:hover {
  background-color: var(--color-surface-subtle);
}

.survey-form-dialog_tdQuestion__DGHWH {
  padding: 12px;
  font-weight: 500;
}

.survey-form-dialog_tdReview__uk6dA {
  padding: 12px;
  text-align: center;
}

.survey-form-dialog_radio__FwrY4 {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border: 2px solid var(--color-border);
  border-radius: 9999px;
  transition:
    border-color 150ms,
    background-color 150ms;
}

/* 선택 강조색(설문 라디오) — 토큰에 없는 고유값 */
.survey-form-dialog_radioSelected__Ocw9J {
  border-color: var(--color-info-soft);
  background-color: var(--color-info-soft);
}

.survey-form-dialog_radio__FwrY4:not(.survey-form-dialog_radioSelected__Ocw9J):hover {
  border-color: #93c5fd;
}

.survey-form-dialog_radioDot__vUBiO {
  width: 12px;
  height: 12px;
  background-color: var(--color-white);
  border-radius: 9999px;
}

.survey-form-dialog_textSection___JJsv {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.survey-form-dialog_textHeading__lNdP3 {
  font-size: 18px;
  font-weight: 600;
}

.survey-form-dialog_textField__vzYCj {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.survey-form-dialog_textLabel__HMdCo {
  display: block;
  font-weight: 500;
}

.survey-form-dialog_textArea__gmcYW {
  width: 100%;
}

.survey-form-dialog_footer__mBPNA {
  display: flex;
  flex-direction: column-reverse;
  gap: 8px;
}

@media (min-width: 640px) {
  .survey-form-dialog_footer__mBPNA {
    flex-direction: row;
    justify-content: flex-end;
  }
}

.component_actions__y2Llw {
  display: flex;
  justify-content: flex-end;
}

/* Footer */
.footer_footer__inMmH {
  position: relative;
  flex-shrink: 0;
  width: 100%;
  height: 89px;
}

.footer_bar__tM8Wi {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 89px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 25px;
  padding: 25px 0;
  background-color: #063234; /* 푸터 전용 짙은 녹색 — 대응 토큰 없음 */
}

.footer_inner__c87Zc {
  position: relative;
  flex-shrink: 0;
  width: 100%;
  max-width: 1920px;
  margin: 0 auto;
  padding: 0 96px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  overflow: clip;
}

/* md 브레이크포인트(768px) */
@media (min-width: 768px) {
  .footer_inner__c87Zc {
    flex-direction: row;
    justify-content: space-between;
  }
}

.footer_copyright__siQWn {
  display: flex;
  flex-direction: column;
  justify-content: center;
  font-family: var(--font-brand);
  font-weight: 300;
  font-size: 16px;
  text-align: center;
  white-space: nowrap;
  color: var(--color-white);
}

.footer_links__eMvK0 {
  display: flex;
  align-items: flex-start;
  gap: 28px;
  font-family: var(--font-brand);
  font-weight: 400;
  font-size: 16px;
  letter-spacing: 0.32px;
  white-space: nowrap;
  color: var(--color-white);
}

.footer_link__iSUjS {
  position: relative;
  flex-shrink: 0;
}

.footer_link__iSUjS:hover {
  text-decoration: underline;
}

/* SiteLayout — 공개 페이지 셸 */
.component_shell__P_qhM {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  align-content: stretch;
  width: 100%;
  min-height: 100vh;
}

/* MenuContent */
.nav-menu-item_label__W4e9m {
  font-family: var(--font-brand);
  font-weight: 700;
  font-size: 20px;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  white-space: nowrap;
  color: rgba(0, 0, 0, 0.87); /* 검정 87% — 대응 토큰 없음 */
}

.nav-menu-item_arrow__XsIm3 {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 10.672px;
  transition: transform 150ms;
}

.nav-menu-item_arrowDesktop__MGk_J {
  transform: rotate(90deg);
}

.nav-menu-item_arrowOpen__oetMz {
  transform: rotate(180deg);
}

.nav-menu-item_arrowIcon__9c3Wj {
  width: 5.75px;
  height: 10.677px;
  color: rgba(0, 0, 0, 0.87);
}

/* MobileSubMenu */
.nav-menu-item_mobileSubMenu__1HX7z {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 12px;
  margin-left: 24px;
}

.nav-menu-item_subLink__gj6gk {
  font-family: var(--font-brand);
  font-weight: 400;
  font-size: 16px;
  text-transform: uppercase;
  color: var(--color-text-muted);
  transition: color 150ms;
}

.nav-menu-item_subLink__gj6gk:hover {
  color: var(--color-brand);
}

/* DesktopSubMenu */
.nav-menu-item_desktopSubMenu__KqHIz {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 10000;
  padding-top: 8px;
}

.nav-menu-item_desktopSubMenuPanel__gF0_q {
  min-width: 200px;
  padding: 8px 0;
  background-color: var(--color-white);
  border: 1px solid var(--color-border); /* Tailwind neutral-200 — 대응 토큰 없음 */
  border-radius: var(--radius-md);
  box-shadow: var(--shadow);
}

.nav-menu-item_desktopSubLink__lH3Bd {
  display: block;
  padding: 8px 16px;
  font-family: var(--font-brand);
  font-weight: 400;
  font-size: 16px;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--color-text-muted);
  transition:
    color 150ms,
    background-color 150ms;
}

.nav-menu-item_desktopSubLink__lH3Bd:hover {
  background-color: var(
    --color-surface-subtle
  ); /* 옅은 hover 배경 — 대응 토큰 없음 */
  color: var(--color-brand);
}

/* NavMenuItem */
.nav-menu-item_menuItem__AOjhr {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  cursor: pointer;
  transition: opacity 150ms;
}

.nav-menu-item_menuItem__AOjhr:hover {
  opacity: 0.7;
}

.nav-menu-item_mobileWrap__7KogP {
  width: 100%;
}

.nav-menu-item_dropdownWrap__L2gfP {
  position: relative;
}

.switch_switch__ytSgt {
  display: inline-flex;
  height: 1.15rem;
  width: 2rem;
  flex-shrink: 0;
  align-items: center;
  border: 1px solid transparent;
  border-radius: 9999px;
  outline: none;
  transition: all 150ms;
}

.switch_switch__ytSgt[data-state="checked"] {
  background-color: var(--primary);
}

.switch_switch__ytSgt[data-state="unchecked"] {
  background-color: var(--input);
}

.switch_switch__ytSgt:focus-visible {
  border-color: var(--ring);
  box-shadow: var(--focus-ring);
}

.switch_switch__ytSgt:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.switch_thumb__wo3nA {
  pointer-events: none;
  display: block;
  width: 1rem;
  height: 1rem;
  border-radius: 9999px;
  background-color: var(--background);
  transition: transform 150ms;
}

.switch_thumb__wo3nA[data-state="checked"] {
  transform: translateX(calc(100% - 2px));
}

.switch_thumb__wo3nA[data-state="unchecked"] {
  transform: translateX(0);
}

.popover_popover__CreN5 {
  position: relative;
  display: inline-block;
}

.popover_content__20Ug1 {
  position: absolute;
  top: 100%;
  z-index: 50;
  margin-top: 0.25rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background-color: var(--popover);
  color: var(--popover-foreground);
  box-shadow: var(--shadow);
  outline: none;
}

.popover_content__20Ug1[data-align="start"] {
  left: 0;
}

.popover_content__20Ug1[data-align="center"] {
  left: 50%;
  transform: translateX(-50%);
}

.popover_content__20Ug1[data-align="end"] {
  right: 0;
}

.toast_viewport__mQRRr {
  pointer-events: none;
  position: fixed;
  bottom: 1rem;
  right: 1rem;
  z-index: 100;
  display: flex;
  width: 20rem;
  flex-direction: column;
  gap: 0.5rem;
}

.toast_toast__TgNnS {
  pointer-events: auto;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 0.75rem 1rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  background-color: var(--popover);
  color: var(--popover-foreground);
  box-shadow: var(--shadow);
}

.toast_text__g9rQV {
  flex: 1 1;
}

.toast_close__Lv3Jf {
  color: var(--muted-foreground);
}

.toast_close__Lv3Jf:hover {
  color: var(--foreground);
}

.toast_icon__Rhd_C {
  width: 1rem;
  height: 1rem;
}

.toast_iconSuccess__3wiH4 {
  color: var(--success);
}

.toast_iconInfo__3zXBs {
  color: var(--info);
}

.toast_iconError__59gp8 {
  color: var(--destructive);
}

.toast_iconDefault__adbv_ {
  color: var(--muted-foreground);
}

.toast_iconLoading__h5kHy {
  animation: toast_toast-spin__qm79X 1s linear infinite;
}

@keyframes toast_toast-spin__qm79X {
  to {
    transform: rotate(360deg);
  }
}

.toast_closeIcon__A_roV {
  width: 0.875rem;
  height: 0.875rem;
}

/* UserMenuItems */
.user-menu_itemLink__k_FL4 {
  display: block;
  padding: 8px 16px;
  font-size: 14px;
  color: var(--color-text);
}

.user-menu_itemLink__k_FL4:hover {
  background-color: var(
    --color-surface-subtle
  ); /* 옅은 hover 배경 — 대응 토큰 없음 */
}

.user-menu_logoutButton__EYg7T {
  display: flex;
  width: 100%;
  padding: 8px 16px;
  font-size: 14px;
  text-align: left;
  color: #d14343; /* 로그아웃 강조 빨강 — 대응 토큰 없음 */
}

.user-menu_logoutButton__EYg7T:hover {
  background-color: var(
    --color-danger-bg
  ); /* 옅은 빨강 hover — 대응 토큰 없음 */
}

.user-menu_logoutButton__EYg7T:disabled {
  opacity: 0.5;
}

/* UserMenu — 계정 버튼/드롭다운 공통 */
.user-menu_accountButton__rZsPT {
  font-family: var(--font-brand);
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
  color: var(--color-brand);
  transition: color 150ms;
}

.user-menu_accountButton__rZsPT:hover {
  color: var(--color-brand-hover);
}

.user-menu_accountButton__rZsPT:disabled {
  opacity: 0.5;
}

.user-menu_alignRight__a_dmO {
  text-align: right;
}

.user-menu_dropdown__w8p7i {
  position: absolute;
  right: 0;
  top: 100%;
  width: 192px;
  background-color: var(--color-white);
  border: 1px solid var(--color-border); /* Tailwind neutral-200 — 대응 토큰 없음 */
  border-radius: var(--radius-md);
  box-shadow: var(--shadow);
}

.user-menu_dropdownFloat__3F9Jc {
  margin-top: 8px;
  transition: opacity 150ms;
}

.user-menu_dropdownOpen__0ClXu {
  opacity: 1;
  pointer-events: auto;
}

.user-menu_dropdownClosed__Ambcd {
  opacity: 0;
  pointer-events: none;
}

/* UserMenu (mobile) */
.user-menu_mobileMenu__eUutd {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

/* UserMenu (desktop) */
.user-menu_menu__fnR5s {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

/* Navigation (root) */
.navigation_nav__eSKUV {
  --nav-border: #d4d4d4; /* Tailwind neutral-300 — 대응 토큰 없음 */

  position: -webkit-sticky;

  position: sticky;
  top: 0;
  z-index: 100;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  align-content: stretch;
  flex-shrink: 0;
  width: 100%;
  background-color: var(--color-white);
  border-bottom: 1px solid var(--nav-border);
}

/* MobileNavigation */
.navigation_mobileNav__tSc0h {
  position: relative;
  flex-shrink: 0;
  width: 100%;
  height: 80px;
  background-color: var(--color-white);
}

.navigation_mobileHeader__IX9PN {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  padding: 0 16px;
}

.navigation_hamburger__95cP1 {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
}

.navigation_mobileLogo__McmTs {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

.navigation_drawer__ZHAHi {
  position: absolute;
  top: 65px;
  left: 0;
  z-index: 10000;
  width: 100%;
  background-color: var(--color-white);
  border-bottom: 1px solid var(--nav-border);
  box-shadow: var(--shadow);
}

.navigation_drawerInner__gHwkM {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 32px;
}

/* DesktopNavigation */
.navigation_desktopNav__L4hQt {
  display: none;
  position: relative;
  flex-shrink: 0;
  width: 100%;
  height: 80px;
  background-color: var(--color-white);
}

.navigation_desktopBar__y5XRv {
  display: flex;
  flex-direction: row;
  align-items: center;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.navigation_desktopInner__v3PKb {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: 100%;
  max-width: 1920px;
  height: 80px;
  margin: 0 auto;
  padding: 0 96px;
}

.navigation_logoBox__6cv2q {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  flex-shrink: 0;
  overflow: clip;
}

.navigation_menuArea__Txobl {
  position: relative;
  display: flex;
  flex-basis: 0;
  flex-grow: 1;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-width: 1px;
  min-height: 1px;
  max-width: 1200px;
  flex-shrink: 0;
}

/* xl 브레이크포인트(1280px): 모바일 숨김 / 데스크탑 표시 */
@media (min-width: 1280px) {
  .navigation_mobileNav__tSc0h {
    display: none;
  }

  .navigation_desktopNav__L4hQt {
    display: block;
  }
}

.component_loadingState__fe_6Y,
.component_emptyState__9rOuq {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  /* 영상이 없는 상태에서만 사용하는 무대 배경 */
  background-color: #000;
  border-radius: var(--radius-lg);
}

.component_loadingText__hYdnA {
  color: var(--color-white);
}

.component_emptyContent__Tb9m7 {
  text-align: center;
}

.component_emptyIcon__Gxrcd {
  width: 80px;
  height: 80px;
  margin: 0 auto 16px;
  color: var(--color-brand);
}

.component_emptyText__HzpO4 {
  font-family: var(--font-brand);
  font-size: 18px;
  color: var(--color-white);
}

.component_player__H96fq {
  --player-max-height: calc(100vh - 200px);

  max-height: var(--player-max-height);
}

.component_player__H96fq .plyr,
.component_player__H96fq .plyr--video,
.component_player__H96fq .plyr video,
.component_player__H96fq .plyr iframe {
  max-height: var(--player-max-height);
}

.component_player__H96fq .plyr video,
.component_player__H96fq .plyr iframe {
  object-fit: contain;
}

.component_viewer__BlRSU {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
}

.component_stage__WYlmr {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  /* 슬라이드 무대 배경 — 토큰에 없는 고유값 */
  background-color: #000;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
}

.component_stageImage__OmBg0 {
  object-fit: contain;
}

.component_imageFallback__tbamB {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  background-color: var(--color-border);
}

.component_fallbackText__O_Lr1 {
  color: var(--color-text-muted);
}

.component_counter__8u9V0 {
  position: absolute;
  top: 16px;
  right: 16px;
  padding: 4px 12px;
  font-size: 14px;
  color: var(--color-white);
  /* 카운터 오버레이 배경 — 반투명 검정 */
  background-color: rgba(0, 0, 0, 0.6);
  border-radius: 9999px;
}

.component_controls__ELUMh {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
}

.component_navButton__2NPjq,
.component_playButton__Grgnp {
  border-radius: 9999px;
  color: var(--color-white);
  background-color: var(--color-brand);
  transition: background-color 150ms;
}
.component_navButton__2NPjq {
  padding: 12px;
}
.component_playButton__Grgnp {
  padding: 16px;
}
.component_navButton__2NPjq:hover:not(:disabled),
.component_playButton__Grgnp:hover {
  background-color: var(--color-brand-hover);
}
.component_navButton__2NPjq:disabled {
  cursor: not-allowed;
  /* 비활성 버튼 배경 — 토큰에 없는 고유값 */
  background-color: #d1d5db;
}

.component_navIcon__yRKuh {
  width: 24px;
  height: 24px;
}
.component_playIcon__s1jUu {
  width: 32px;
  height: 32px;
}

.component_notes__enpgV {
  padding: 24px;
  background-color: var(--color-surface-subtle);
  border-radius: var(--radius-lg);
}
.component_notesTitle__FuNoD {
  margin-bottom: 8px;
  font-size: 18px;
  font-weight: 500;
  color: var(--color-text);
}
.component_notesText__qhbDo {
  font-size: 14px;
  line-height: 1.625;
  white-space: pre-wrap;
  color: var(--color-text-muted);
}

.component_empty__LT4Yd {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 16 / 9;
  background-color: var(--color-surface-subtle);
  border-radius: var(--radius-lg);
}

.component_audio__kn_2J {
  display: none;
}

.component_hint__gvEmA {
  font-size: 12px;
  text-align: center;
  color: var(--color-text-muted);
}

._component_page__EfPW0 {
  width: 100%;
}

._component_section__jnr__ {
  width: 100%;
  padding: 48px 0;
  font-family: var(--font-brand);
  background-color: var(--color-white);
}

._component_container__YOmH9 {
  max-width: 1920px;
  margin: 0 auto;
  padding: 0 24px;
}

._component_block__XMBL0 {
  margin-bottom: 64px;
}

._component_heading__4jpCJ {
  margin-bottom: 32px;
  font-weight: 700;
  font-size: 24px;
  color: var(--color-text);
}

/* ── 내 강좌 표 ── */
._component_tableWrap__2MYg1 {
  overflow-x: auto;
}

._component_table__HsSee {
  width: 100%;
  border-collapse: collapse;
}

._component_headRow__PjeH6 {
  color: var(--color-white);
  background-color: var(--color-brand);
}

._component_th__vpnxJ {
  padding: 16px 24px;
  font-weight: 600;
  font-size: 14px;
  text-align: center;
}
._component_thLeft__tmxoj {
  text-align: left;
}

._component_row__FyHV4 {
  background-color: var(--color-white);
  border-bottom: 1px solid var(--color-border);
}
._component_row__FyHV4:nth-child(even) {
  background-color: var(--color-surface-subtle);
}

._component_td__hW8jp {
  padding: 16px 24px;
  font-size: 14px;
}
._component_tdCenter__kbtM_ {
  text-align: center;
}

._component_courseLink__E2d4L {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--color-brand);
  transition: color 150ms;
}
._component_courseLink__E2d4L:hover {
  color: var(--color-brand-hover);
}

._component_thumb__hz50t {
  position: relative;
  flex-shrink: 0;
  width: 64px;
  height: 64px;
  overflow: hidden;
  background-color: var(--color-border);
  border-radius: 4px;
}
._component_thumbImage___xseW {
  object-fit: cover;
}

._component_courseName__edwmy:hover {
  text-decoration: underline;
}

._component_progress__tzlMs {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
._component_progressTrack__ic_F3 {
  width: 96px;
  height: 8px;
  overflow: hidden;
  background-color: var(--color-border);
  border-radius: 9999px;
}
._component_progressFill__UaYlW {
  height: 100%;
  background-color: var(--color-brand);
  border-radius: 9999px;
}
._component_progressPct__LlvBu {
  color: var(--color-text-muted);
}

._component_certLink__vfNKT {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 16px;
  font-weight: 500;
  font-size: 12px;
  color: var(--color-white);
  background-color: var(--color-brand);
  border-radius: 4px;
  transition: background-color 150ms;
}
._component_certLink__vfNKT:hover {
  background-color: var(--color-brand-hover);
}

._component_surveyButton__WaeD_ {
  /* 설문 유도 강조색(앰버) — 토큰에 없는 고유값 */
  --survey-amber: #f59e0b;
  --survey-amber-hover: #d97706;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 16px;
  font-weight: 500;
  font-size: 12px;
  color: var(--color-white);
  background-color: var(--survey-amber);
  border-radius: 4px;
  transition: background-color 150ms;
}
._component_surveyButton__WaeD_:hover {
  background-color: var(--survey-amber-hover);
}

._component_actionIcon__2jw79 {
  width: 16px;
  height: 16px;
  margin-right: 4px;
}

._component_dash__jxdWf {
  color: var(--color-text-subtle);
}

/* ── 전체 강좌 카드 ── */
._component_cardGrid__DUZlv {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 24px;
  gap: 24px;
}

._component_empty__DEtyJ {
  padding: 48px 0;
  text-align: center;
}
._component_emptyText__vZ7uq {
  color: var(--color-text-muted);
}

@media (min-width: 640px) {
  ._component_cardGrid__DUZlv {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 768px) {
  ._component_section__jnr__ {
    padding: 64px 0;
  }
  ._component_heading__4jpCJ {
    font-size: 30px;
  }
}

@media (min-width: 1024px) {
  ._component_section__jnr__ {
    padding: 80px 0;
  }
  ._component_cardGrid__DUZlv {
    grid-template-columns: repeat(4, 1fr);
  }
}

@media (min-width: 1280px) {
  ._component_container__YOmH9 {
    padding: 0 96px;
  }
}

.grid_row__va_xl {
  display: flex;
}

.grid_wrap___WoqV {
  flex-wrap: wrap;
}

.grid_nowrap__zR0rR {
  flex-wrap: nowrap;
}

.grid_col__wj145 {
  min-height: 0;
}

.divider_divider__FLE5t {
  flex-shrink: 0;
  background-color: var(--border);
}

.divider_divider__FLE5t[data-orientation="horizontal"] {
  height: 1px;
  width: 100%;
}

.divider_divider__FLE5t[data-orientation="vertical"] {
  height: 100%;
  width: 1px;
}

._component_stack__k8nDp > * + * {
  margin-top: 16px;
}

._component_tabBar__Oc4Vk {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ── 단일 선택 ── */
.select_select__cQ_t0 {
  /* 목록이 아무리 길어도 이 폭을 넘지 않게 해 화면 밖으로 나가지 않는다. */
  --content-max-width: 20rem;
  position: relative;
  /* 트리거가 내용 크기이므로 감싸는 칸도 같이 줄여, 펼친 목록의 기준 폭을
     트리거와 맞춘다. 늘어난 칸을 기준으로 삼으면 목록만 넓어진다. */
  width: -moz-fit-content;
  width: fit-content;
}

.select_trigger__6LiAs {
  display: flex;
  width: -moz-fit-content;
  width: fit-content;
  height: 2.25rem;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  border: 1px solid var(--input);
  border-radius: var(--radius-md);
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  white-space: nowrap;
  background-color: transparent;
  outline: none;
  transition:
    color 150ms,
    box-shadow 150ms;
}

.select_trigger__6LiAs:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.select_trigger__6LiAs:focus-visible {
  border-color: var(--ring);
  box-shadow: var(--focus-ring);
}

.select_placeholder__CRDFA {
  color: var(--muted-foreground);
}

.select_chevron__wQ544 {
  width: 1rem;
  height: 1rem;
  opacity: 0.5;
}

.select_content__HT98m {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 50;
  margin-top: 0.25rem;
  max-height: 16rem;
  /* 트리거만큼은 반드시 넓히고, 글이 더 길면 그만큼만 늘린다. */
  min-width: 100%;
  width: max-content;
  max-width: var(--content-max-width);
  overflow-x: hidden;
  overflow-y: auto;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 0.25rem;
  background-color: var(--popover);
  color: var(--popover-foreground);
  box-shadow: var(--shadow);
}

.select_item__TOqT0 {
  position: relative;
  display: flex;
  width: 100%;
  cursor: default;
  align-items: center;
  gap: 0.5rem;
  border-radius: var(--radius-sm);
  padding: 0.375rem 2rem 0.375rem 0.5rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  outline: none;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.select_item__TOqT0:hover,
.select_item__TOqT0:focus {
  background-color: var(--accent);
  color: var(--accent-foreground);
}

.select_check__Een8C {
  position: absolute;
  right: 0.5rem;
  display: flex;
  width: 0.875rem;
  height: 0.875rem;
  align-items: center;
  justify-content: center;
}

.select_checkIcon__OE9se {
  width: 1rem;
  height: 1rem;
}

/* ── 다중 선택 ── */
.select_badgeWrap__z9DLn {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}

.select_removeChip__lnZOi {
  display: inline-flex;
  margin-left: 0.25rem;
  border-radius: 9999px;
  cursor: pointer;
  outline: none;
}

.select_removeChip__lnZOi:focus-visible {
  box-shadow:
    0 0 0 2px var(--background),
    0 0 0 4px var(--ring);
}

.select_removeIcon__d5QCW {
  width: 0.75rem;
  height: 0.75rem;
  color: var(--muted-foreground);
}

.select_removeChip__lnZOi:hover .select_removeIcon__d5QCW {
  color: var(--foreground);
}

.select_msChevron__yRuAq {
  margin-left: 0.5rem;
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  opacity: 0.5;
}

.select_searchWrap__8GKJJ {
  border-bottom: 1px solid var(--border);
  padding: 0.5rem;
}

.select_search__KCOrV {
  width: 100%;
  background-color: transparent;
  padding: 0.25rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  outline: none;
}

.select_list__jgtry {
  max-height: 16rem;
  overflow-y: auto;
  padding: 0.25rem;
}

.select_empty__cJ1S3 {
  padding: 1.5rem 0;
  text-align: center;
  font-size: 0.875rem;
  color: var(--muted-foreground);
}

.select_optionRow__5cibK {
  display: flex;
  cursor: pointer;
  align-items: center;
  border-radius: var(--radius-sm);
  padding: 0.375rem 0.5rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.select_optionRow__5cibK:hover {
  background-color: var(--accent);
  color: var(--accent-foreground);
}

.select_optionCheck__nBdJT {
  margin-right: 0.5rem;
  width: 1rem;
  height: 1rem;
  opacity: 0;
}

.select_optionCheckOn__NOtFI {
  opacity: 1;
}

.select_multiTrigger__k5Cj4 {
  width: 100%;
  justify-content: space-between;
}

.select_multiPopover___RBkY {
  width: 100%;
  padding: 0;
}

.card_card__UTBDd {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
  background-color: var(--card);
  color: var(--card-foreground);
}

.card_header__XGMx9 {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.card_title__WCIHg {
  line-height: 1;
  font-weight: 600;
}

.card_content__xWd3w {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.chart-error_card__2sNc_ {
  display: flex;
  min-height: 120px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px;
  text-align: center;
  border-style: dashed;
}

.chart-error_title__dvUhf {
  font-size: 14px;
  font-weight: 500;
  color: var(--color-destructive);
}

.chart-error_detail__K7q4v {
  margin-top: 4px;
  max-width: 28rem;
  font-size: 12px;
  color: var(--color-muted-foreground);
}

.completion-bar_card__acING {
  padding: 16px;
}

.completion-bar_title__bME_S {
  margin-bottom: 16px;
  font-size: 18px;
  font-weight: 600;
}

.completion-bar_chart__mOmBt {
  height: 24rem;
}

.enrollment-donut_card__kdBbq {
  padding: 16px;
}

.enrollment-donut_empty__Yk1is {
  display: flex;
  height: 20rem;
  align-items: center;
  justify-content: center;
  padding: 16px;
}

.enrollment-donut_emptyText__PpUVF {
  font-size: 14px;
  color: var(--color-muted-foreground);
}

.enrollment-donut_title__DxrAO {
  margin-bottom: 16px;
  font-size: 18px;
  font-weight: 600;
}

.enrollment-donut_chart__uAxe2 {
  height: 18rem;
}

.kpi-cards_grid__lO6Pm {
  display: grid;
  grid-gap: 16px;
  gap: 16px;
}

@media (min-width: 640px) {
  .kpi-cards_grid__lO6Pm {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .kpi-cards_grid__lO6Pm {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.kpi-cards_card__lsbzg {
  padding: 16px;
}

.kpi-cards_title__l73rR {
  font-size: 14px;
  font-weight: 500;
  color: var(--color-muted-foreground);
}

.kpi-cards_main__xLO2W {
  margin-top: 8px;
  font-size: 24px;
  font-weight: 600;
}

.kpi-cards_sub__1BaBJ {
  font-size: 12px;
  color: var(--color-muted-foreground);
}

.form_item__EQ6R_ {
  display: grid;
  grid-gap: 0.5rem;
  gap: 0.5rem;
}

.form_labelError__LAj0x {
  color: var(--destructive);
}

.form_description__r66Sc {
  color: var(--muted-foreground);
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.form_message__sOnbL {
  color: var(--destructive);
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.form_cell__AJ_ea {
  flex: 1 1;
}

.form_actions__PaC_X {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  padding-top: 0.5rem;
}

.form_saveActions__fRssE {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  padding-top: 1rem;
}

.scroll-area_area__P4LIQ {
  position: relative;
  overflow: auto;
}

/* FileUploadField */
.component_field__aRPL_ {
  border-style: dashed;
}

.component_content__vTuY5 {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 16px;
}

.component_files__uRKox {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* FieldLabel */
.component_labelGroup__6xaHp {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.component_labelText__0DNjR {
  font-size: 14px;
  font-weight: 500;
}

.component_hint__yLpXY {
  font-size: 12px;
  color: var(--color-muted-foreground);
}

/* FileList */
.component_listHeading__7MENE {
  font-size: 12px;
  font-weight: 600;
  color: var(--color-muted-foreground);
}

.component_list__kjaBT {
  margin-top: 4px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 14px;
}

/* FileRow */
.component_row__HX7Kp {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border: 1px solid var(--color-border);
  border-radius: 4px; /* Tailwind rounded 기본값(0.25rem) — 대응 토큰 없음 */
  padding: 4px 8px;
}

.component_rowName__dagZh {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding-right: 8px;
}

/* RemoveButton */
.component_removeButton__14V6i {
  width: 32px;
  height: 32px;
}

.component_removeIcon__kXH0M {
  width: 16px;
  height: 16px;
}

.component_srOnly__yFLIR {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

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

.header_title__j__TZ {
  font-size: 0.875rem;
  font-weight: 500;
}

.header_icon__fl90p {
  margin-right: 0.5rem;
  width: 1rem;
  height: 1rem;
}

.header_iconSm__qQVlM {
  margin-right: 0.5rem;
  width: 0.75rem;
  height: 0.75rem;
}

.checkbox_checkbox__sFFip {
  display: grid;
  place-content: center;
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  border: 1px solid var(--input);
  border-radius: 4px;
  outline: none;
  transition: box-shadow 150ms;
}

.checkbox_checkbox__sFFip[data-state="checked"],
.checkbox_checkbox__sFFip[data-state="indeterminate"] {
  background-color: var(--primary);
  color: var(--primary-foreground);
  border-color: var(--primary);
}

.checkbox_checkbox__sFFip:focus-visible {
  border-color: var(--ring);
  box-shadow: var(--focus-ring);
}

.checkbox_checkbox__sFFip[aria-invalid="true"] {
  border-color: var(--destructive);
}

.checkbox_checkbox__sFFip:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.checkbox_indicator__Y7GPE {
  color: currentColor;
}

.checkbox_indicatorIcon__azmQy {
  width: 0.875rem;
  height: 0.875rem;
}

/* 세로 간격 (Tailwind space-y 대응) */
.json-array-field_stack__1yyP1 > * + * {
  margin-top: 12px;
}

.json-array-field_entryFields__RJzTd > * + * {
  margin-top: 16px;
}

.json-array-field_fieldLabelGroup__qLjvS > * + * {
  margin-top: 4px;
}

.json-array-field_entryLabel__RvZU2 {
  font-size: 14px;
  font-weight: 500;
}

.json-array-field_longText__Jd8Ox {
  min-height: 120px;
}

.json-array-field_switchRow__9dNh7 {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  padding: 12px;
  border: 1px solid var(--color-border);
  border-radius: 4px;
}

.json-array-field_cardBody__94NX9 {
  padding: 16px;
}

.json-array-field_footer__MvGQX {
  display: flex;
  justify-content: flex-end;
}

.json-array-field_empty__7VoQj {
  font-size: 12px;
  color: var(--color-muted-foreground);
}

.json-array-field_removeIcon__vsHps {
  margin-right: 8px;
  height: 16px;
  width: 16px;
}

.json-array-field_carousel__eVHYs {
  max-height: 320px;
}

.table_container__Lfu_M {
  position: relative;
  width: 100%;
  overflow-x: auto;
}

.table_table__1aAxY {
  width: 100%;
  caption-side: bottom;
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.table_headerRow__u58mQ {
  border-bottom: 1px solid var(--border);
}

.table_row__r5A8T {
  border-bottom: 1px solid var(--border);
  transition: background-color 150ms;
}

.table_row__r5A8T:last-child {
  border-bottom: 0;
}

.table_row__r5A8T:hover {
  background-color: color-mix(in oklab, var(--muted) 50%, transparent);
}

.table_row__r5A8T[data-state="selected"] {
  background-color: var(--muted);
}

.table_head__Qdkse {
  height: 2.5rem;
  padding: 0 0.5rem;
  text-align: left;
  vertical-align: middle;
  font-weight: 500;
  white-space: nowrap;
  color: var(--foreground);
  background-color: var(--muted);
}

.table_cell__FB69Q {
  padding: 0.5rem;
  vertical-align: middle;
  white-space: nowrap;
}

.table_head__Qdkse:has([role="checkbox"]),
.table_cell__FB69Q:has([role="checkbox"]) {
  padding-right: 0;
}

.table_head__Qdkse > [role="checkbox"],
.table_cell__FB69Q > [role="checkbox"] {
  transform: translateY(2px);
}

.table_empty__0x5d5 {
  height: 6rem;
  text-align: center;
  font-size: 0.875rem;
  color: var(--muted-foreground);
}

.statistics-table_card__Ddfe3 {
  height: 100%;
}

.statistics-table_scroll__gDEGU {
  overflow-x: auto;
}

.statistics-table_content__KKdhx > * + * {
  margin-top: 1rem;
}

.statistics-table_colNo__kMMr7 {
  width: 3rem;
}

.statistics-table_colTitle__J2zMG {
  max-width: 260px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 500;
}

.visitors-map_card__NxqFY {
  height: 100%;
}

.visitors-map_header__jF91k {
  padding: 0 24px;
}

.visitors-map_header__jF91k > * + * {
  margin-top: 8px;
}

.visitors-map_headerTitle__395rR {
  line-height: 1;
  font-weight: 600;
}

.visitors-map_body__MN_Fd {
  padding: 0 24px;
}

.visitors-map_body__MN_Fd > * + * {
  margin-top: 16px;
}

.visitors-map_mapWrap__dNQZT {
  height: 320px;
  width: 100%;
}

.visitors-map_map__MkaAA {
  height: 100%;
  width: 100%;
}

.visitors-map_activityGrid__Yncrn {
  display: grid;
  grid-gap: 8px;
  gap: 8px;
  font-size: 14px;
  color: var(--color-muted-foreground);
}

@media (min-width: 768px) {
  .visitors-map_activityGrid__Yncrn {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.visitors-map_activityRow__z_lu7 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 12px;
  border: 1px dashed var(--color-border);
  border-radius: 4px;
}

.visitors-map_activityLabel__kFWKu {
  font-weight: 500;
  color: var(--color-foreground);
}

.visitors-map_markerLabel__4KYmu {
  font-size: 12px;
  font-weight: 500;
}

._component_stack__XvpBL > * + * {
  margin-top: 24px;
}

._component_grid__nyt7G {
  display: grid;
  grid-gap: 24px;
  gap: 24px;
}

@media (min-width: 1024px) {
  ._component_grid__nyt7G {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1280px) {
  ._component_grid__nyt7G {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

._component_cell__bU0l8 {
  grid-column: span 1;
}

/* 필드 공통 — 세로 간격 (Tailwind space-y 대응) */
.setup-field_field__gRZxl > * + * {
  margin-top: 8px;
}

.setup-field_fieldWide__fRJti > * + * {
  margin-top: 12px;
}

.setup-field_wysiwygFrame__0_YYQ {
  border: 1px solid var(--color-border);
  border-radius: 4px;
}

.setup-field_switchRow__FcAHS {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  padding: 16px;
  border: 1px solid var(--color-border);
  border-radius: 4px;
}

.setup-field_switchLabel__f_Jn9 > * + * {
  margin-top: 4px;
}

.setup-field_longText__IuLg1 {
  min-height: 140px;
}

/* PaginatedSelectableTable */
.component_container__18RVs {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* 표 제목(caption prop 을 준 경우) */
.component_caption__jW1fd {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-text);
}

/* SearchBar */
.component_searchBar__1OOA8 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.component_searchInput__W86Ks {
  max-width: 24rem;
}

/* SelectableDataTable */
.component_tableFrame__NgumN {
  overflow: hidden;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background-color: var(--color-white);
}

.component_scroll__e_6p9 {
  display: grid;
  grid-template-columns: 1fr;
  width: 100%;
  height: 100%;
}

.component_table__P_hXj {
  width: 100%;
  caption-side: bottom;
  font-size: 14px;
}

.component_selectColumn__XCMA_ {
  width: 40px;
}

/* TablePagination */
.component_pagination__8k27E {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 8px;
  font-size: 14px;
  color: var(--color-muted-foreground);
}

/* md 브레이크포인트(768px) — Tailwind md 대응 */
@media (min-width: 768px) {
  .component_pagination__8k27E {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

.component_pageControls__sk_X7 {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* SetupModalHeader */
.component_header___1Bxt {
  padding: 16px 24px;
  border-bottom: 1px solid var(--color-border);
}

.component_headerTitle__tSiCy {
  font-size: 20px;
  font-weight: 600;
}

/* SetupModalFooter */
.component_footer__WXb1c {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
}

/* SetupModal */
.component_modal__CFlk_ {
  max-width: 64rem;
  overflow: hidden;
  padding: 0;
}

.component_scroll__61fEI {
  max-height: 78vh;
}

.component_content__PKfAs {
  padding: 0 24px 24px;
}

.component_form__7_3q8 > * + * {
  margin-top: 24px;
}

/* AdminToolbar */
.component_toolbar__bbFwK {
  margin-bottom: 16px;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

/* SelectionNote */
.component_selectionNote__gArR1 {
  font-size: 12px;
  color: var(--color-muted-foreground);
}

._component_colTitle__Gn51x {
  max-width: 260px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

._component_colDate__nCGsc {
  min-width: 140px;
}

._component_colActions__Fq81w {
  width: 6rem;
  text-align: right;
}

.component_toolbar__pBm_c {
  margin-bottom: 16px;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.component_selectionHint__PspnO {
  font-size: 12px;
  color: var(--color-muted-foreground);
}

/* 표 열 폭·정렬 */
.component_colDate__laGiA {
  min-width: 140px;
}

.component_colAction__mnRZA {
  width: 96px;
  text-align: right;
}

/* 화면에 안 보이지만 스크린리더에는 읽히는 라벨 */
.component_srOnly__1bUqu {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* 표 열 폭 */
._component_colTitle__p7Gt5 {
  max-width: 300px;
}

._component_titleCell__yOULp {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 표 열 폭 */
._component_colUrl__fuFQl {
  max-width: 220px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

._component_toolbar__9l7_Z {
  margin-bottom: 16px;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

._component_selectionHint__9Ha9A {
  font-size: 12px;
  color: var(--color-muted-foreground);
}

/* 표 열 폭·정렬 */
._component_colText__Sk_Id {
  max-width: 220px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

._component_colDate__r5q5e {
  min-width: 140px;
}

._component_colAction__eDrAV {
  width: 96px;
  text-align: right;
}

/* 화면에 안 보이지만 스크린리더에는 읽히는 라벨 */
._component_srOnly__UIrq4 {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.video-lecture-admin_colText__6pcFq {
  max-width: 240px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.video-lecture-admin_colDate__Vd73e {
  min-width: 140px;
}

.video-lecture-admin_colAction__VPM2i {
  width: 96px;
  text-align: right;
}

.video-lecture-admin_srOnly__6Oe5h {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.slide-editor_list__XrDEj {
  /* 파란 강조색은 토큰 팔레트(회색조 primary)에 없는 이 에디터 고유값 */
  --accent: var(--color-info);
  --accent-hover: #1d4ed8;
  --accent-ring: var(--color-info-soft);
}

.slide-editor_list__XrDEj > * + * {
  margin-top: 16px;
}

.slide-editor_emptyState__r8fho {
  padding: 48px;
  text-align: center;
  border: 2px dashed var(--color-border);
  border-radius: 8px;
}

.slide-editor_emptyText__a3KwZ {
  font-size: 14px;
  color: var(--color-muted-foreground);
}

.slide-editor_slideItem__cUzNB {
  display: flex;
  gap: 16px;
  padding: 16px;
  background-color: var(--color-background);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  box-shadow: var(--shadow);
}

.slide-editor_dragHandle__0eyaH {
  display: flex;
  align-items: center;
  cursor: -webkit-grab;
  cursor: grab;
}

.slide-editor_dragHandle__0eyaH:active {
  cursor: -webkit-grabbing;
  cursor: grabbing;
}

.slide-editor_dragIcon__FXwb1 {
  width: 24px;
  height: 24px;
  color: var(--color-muted-foreground);
}

.slide-editor_preview__j7Qe9 {
  width: 192px;
  flex-shrink: 0;
}

.slide-editor_previewImage__nHbR_ {
  width: 100%;
  height: auto;
  object-fit: contain;
  border: 1px solid var(--color-border);
  border-radius: 4px;
  background-color: var(--color-background);
}

.slide-editor_previewPlaceholder__edvK7 {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 128px;
  border: 2px dashed var(--color-border);
  border-radius: 4px;
  background-color: var(--color-muted);
}

.slide-editor_previewNoText__ptJDN {
  font-size: 12px;
  color: var(--color-muted-foreground);
}

.slide-editor_previewCaption__t_GZS {
  margin-top: 8px;
  font-size: 12px;
  text-align: center;
  color: var(--color-muted-foreground);
}

.slide-editor_slideBody__8ZbA2 {
  flex: 1 1;
}

.slide-editor_slideBody__8ZbA2 > * + * {
  margin-top: 12px;
}

.slide-editor_fieldLabel__HK70Q {
  display: block;
  margin-bottom: 4px;
  font-size: 14px;
  font-weight: 500;
  color: var(--color-foreground);
}

.slide-editor_textArea__CLR_n {
  width: 100%;
  min-height: 100px;
  padding: 8px 12px;
  font-size: 14px;
  border: 1px solid var(--color-border);
  border-radius: 6px;
  resize: vertical;
}

.slide-editor_textArea__CLR_n:focus {
  outline: none;
  border-color: transparent;
  box-shadow: 0 0 0 2px var(--accent-ring);
}

.slide-editor_textArea__CLR_n:disabled {
  background-color: var(--color-muted);
  color: var(--color-muted-foreground);
}

.slide-editor_ttsRow__lNI2R {
  display: flex;
  align-items: center;
  gap: 12px;
}

.slide-editor_ttsButton__MqTCa {
  background-color: var(--accent);
  color: var(--color-white);
}

.slide-editor_ttsButton__MqTCa:hover {
  background-color: var(--accent-hover);
}

.slide-editor_audio__EOanE {
  height: 36px;
  flex: 1 1;
}

.slide-editor_errorText__5n9VI {
  font-size: 12px;
  color: var(--color-destructive);
}

.slide-editor_hintText__b_Gf0 {
  font-size: 12px;
  color: var(--color-muted-foreground);
}

@keyframes component_spin__LYLgW {
  to {
    transform: rotate(360deg);
  }
}

.component_form__L1UYz {
  /* 파란 강조색은 토큰 팔레트(회색조 primary)에 없는 이 폼 고유값 */
  --accent: var(--color-info);
  --accent-hover: #1d4ed8;
  --accent-ring: var(--color-info-soft);

  max-width: 72rem;
  margin: 0 auto;
  padding: 24px;
}

.component_form__L1UYz > * + * {
  margin-top: 24px;
}

.component_spinner__SH_Km {
  height: 16px;
  width: 16px;
  animation: component_spin__LYLgW 1s linear infinite;
}

/* 상태 배너 색은 회색조 토큰에 없는 고유 상태색(고정 라이트 톤) */
.component_errorBanner__97JWm {
  padding: 12px 16px;
  border-radius: 4px;
  background-color: var(--color-danger-bg);
  border: 1px solid var(--color-danger-border);
  color: #b91c1c;
}

.component_card__RTw2x {
  padding: 24px;
  background-color: var(--color-background);
  border: 1px solid var(--color-border);
  border-radius: 8px;
}

.component_card__RTw2x > * + * {
  margin-top: 16px;
}

.component_cardTitle__LN9tE {
  font-size: 18px;
  font-weight: 500;
  color: var(--color-foreground);
}

.component_fieldLabel__bikCB {
  display: block;
  margin-bottom: 4px;
  font-size: 14px;
  font-weight: 500;
  color: var(--color-foreground);
}

.component_sectionLabel__sg2Kb {
  display: block;
  margin-bottom: 8px;
  font-size: 14px;
  font-weight: 500;
  color: var(--color-foreground);
}

.component_textInput__bkDY7 {
  width: 100%;
  padding: 8px 12px;
  border: 1px solid var(--color-border);
  border-radius: 6px;
}

.component_textInput__bkDY7:focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--accent-ring);
}

.component_resizeY__9ez9K {
  resize: vertical;
}

.component_hidden__8Tify {
  display: none;
}

.component_radioRow___5Wzd {
  display: flex;
  gap: 16px;
}

.component_radioOption___xQep {
  display: flex;
  align-items: center;
}

.component_radioInput__LbSEO {
  margin-right: 8px;
}

.component_radioLabel__aBvRs {
  font-size: 14px;
}

/* 파일 입력 — 파란 파일 버튼은 이 폼 고유 강조색 */
.component_fileInput__HKixr {
  display: block;
  width: 100%;
  font-size: 14px;
  color: var(--color-muted-foreground);
}

.component_fileInput__HKixr::-webkit-file-upload-button {
  margin-right: 16px;
  padding: 8px 16px;
  border: 0;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 500;
  background-color: var(--color-info-bg);
  color: #1d4ed8;
}

.component_fileInput__HKixr::file-selector-button {
  margin-right: 16px;
  padding: 8px 16px;
  border: 0;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 500;
  background-color: var(--color-info-bg);
  color: #1d4ed8;
}

.component_fileInput__HKixr::-webkit-file-upload-button:hover {
  background-color: #dbeafe;
}

.component_fileInput__HKixr::file-selector-button:hover {
  background-color: #dbeafe;
}

.component_fileInput__HKixr:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* 안내 문구 — 고유 상태색(고정 라이트 톤) */
.component_replaceHint__oaDHG {
  padding: 12px;
  border-radius: 4px;
  font-size: 14px;
  color: var(--color-text-slate-strong);
  background-color: #fefce8;
  border: 1px solid #fef08a;
}

.component_processingHint__6gZth {
  margin-top: 8px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: var(--accent);
}

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

.component_loadedBadge___zTU1 {
  padding: 4px 12px;
  border-radius: 9999px;
  font-size: 14px;
  color: var(--color-success);
  background-color: var(--color-success-bg);
}

.component_editTip__B0_X9 {
  padding: 12px;
  border-radius: 4px;
  font-size: 14px;
  color: var(--color-text-slate-strong);
  background-color: var(--color-info-bg);
  border: 1px solid var(--color-info-border);
}

.component_actions__6E3kx {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
}

.component_saveButton__CcjP2 {
  background-color: var(--accent);
  color: var(--color-white);
}

.component_saveButton__CcjP2:hover {
  background-color: var(--accent-hover);
}

.component_savingLabel__62U5F {
  display: flex;
  align-items: center;
  gap: 8px;
}

.slide-lecture-admin_stack__cAMUT > * + * {
  margin-top: 16px;
}

.slide-lecture-admin_headerRow__2VBoY {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.slide-lecture-admin_headerTitle__P6or_ {
  font-size: 24px;
  font-weight: 700;
}

.slide-lecture-admin_headerSubtitle__KDyXM {
  font-size: 14px;
  color: var(--color-muted-foreground);
}

.slide-lecture-admin_headerActions__W5ZEo {
  display: flex;
  gap: 8px;
}

.slide-lecture-admin_deleteText__u4iBi {
  color: var(--color-destructive);
}

.slide-lecture-admin_deleteText__u4iBi:hover {
  opacity: 0.85;
}

/* 표 열 폭·정렬 */
.slide-lecture-admin_colTitle__ZH7xh {
  max-width: 240px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.slide-lecture-admin_colLang__5Rcxf {
  max-width: 140px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.slide-lecture-admin_colInputType__Zce2t {
  max-width: 120px;
}

.slide-lecture-admin_colCourse__mLLl8 {
  width: 96px;
  text-align: center;
}

.slide-lecture-admin_colDate__QwThZ {
  min-width: 140px;
}

.slide-lecture-admin_colAction__s35pM {
  width: 96px;
  text-align: right;
}

.slide-lecture-admin_srOnly__CoDzQ {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

._component_toolbar__2Etyq {
  margin-bottom: 16px;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

._component_selectionHint__cwzrG {
  font-size: 12px;
  color: var(--color-muted-foreground);
}

._component_objectListCard__mL9VJ {
  padding: 8px;
  gap: 0;
  background-color: var(--color-muted);
}

._component_objectListTitle__P_oCy {
  font-size: 14px;
  font-weight: 700;
  color: var(--color-muted-foreground);
}

._component_objectListText__l2xeP {
  font-size: 10px;
  line-height: 1;
  color: var(--color-muted-foreground);
}

/* 표 열 폭·정렬 */
._component_colTitle__jQ1im {
  max-width: 240px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

._component_colNarrow__xHNRD {
  max-width: 160px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

._component_colDate__rO63d {
  min-width: 140px;
}

._component_colAction__sNzwZ {
  width: 96px;
  text-align: right;
}

/* 화면에 안 보이지만 스크린리더에는 읽히는 라벨 */
._component_srOnly__x3iri {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.modal_modalBox__gFOeo {
  max-height: 90vh;
  max-width: 56rem;
}

.modal_scroll___5m2R {
  max-height: calc(90vh - 120px);
}

.modal_form__8KgH6 {
  padding: 4px;
}

.modal_form__8KgH6 > * + * {
  margin-top: 24px;
}

.xlsx-download-button_icon__ndZoY {
  margin-right: 8px;
  height: 16px;
  width: 16px;
}

._component_header__SLsQt {
  margin-bottom: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

@media (min-width: 640px) {
  ._component_header__SLsQt {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

._component_intro__kfprI {
  font-size: 14px;
  color: var(--color-muted-foreground);
}

/* 진행/완료 강조색 — 회색조 토큰에 없는 고유 상태색 */
._component_statInProgress__R2N1_ {
  font-weight: 500;
  color: var(--color-info);
}

._component_statCompleted__LkEWa {
  font-weight: 500;
  color: var(--color-success);
}

/* 표 열 폭·정렬 */
._component_colEmail__DgXEJ {
  max-width: 240px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

._component_colName___mQKQ {
  max-width: 180px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

._component_colProgress__bOTcL {
  max-width: 200px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

._component_colCount__05rXM {
  width: 100px;
  text-align: center;
}

._component_colStat__VUdfV {
  width: 120px;
  text-align: center;
}

._component_colDate__Mbefi {
  min-width: 140px;
}

._component_colAction__lmGr8 {
  width: 96px;
  text-align: right;
}

._component_srOnly__OSU18 {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.page_error__J1kCk {
  font-size: 14px;
  color: var(--color-destructive);
}

