/*!*******************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/app/page.module.css ***!
  \*******************************************************************************************************************************************************************************************************************************************************************/
/* 표제 — 어두운 상자 대신 활자와 괘선으로 세운다 */
.page_masthead__rOak8 {
  padding-bottom: var(--gds-space-lg);
  margin-bottom: var(--gds-space-xl);
  border-bottom: 2px solid var(--gds-ink-90);
}

.page_eyebrow__H9Slr {
  font-family: var(--gds-font-family-mono);
  font-size: var(--gds-font-size-2xs);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gds-text-tertiary);
  display: block;
  margin-bottom: var(--gds-space-sm);
}

.page_heroTitle__Gfler {
  font-size: var(--gds-font-size-6xl);
  line-height: 1.08;
  font-weight: var(--gds-font-weight-bold);
  letter-spacing: -0.04em;
  color: var(--gds-text-primary);
  max-width: 20ch;
}

.page_heroSub__YNSLe {
  margin-top: var(--gds-space-md);
  font-size: var(--gds-font-size-lg);
  line-height: 1.6;
  color: var(--gds-text-secondary);
  max-width: 46ch;
}

.page_heroActions__8_tzb {
  margin-top: var(--gds-space-lg);
  display: flex;
  gap: var(--gds-space-xs);
}

.page_sectionTitle__hzsAh {
  font-family: var(--gds-font-family-mono);
  font-size: var(--gds-font-size-2xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gds-text-tertiary);
  padding-bottom: var(--gds-space-xs);
  margin-bottom: var(--gds-space-md);
  border-bottom: 1px solid var(--gds-line-default);
}

/* 모듈 목록 — 카드 격자가 아니라 번호가 매겨진 항목들 */
.page_moduleList__KhfEi {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 0 var(--gds-space-2xl);
  gap: 0 var(--gds-space-2xl);
  margin-bottom: var(--gds-space-2xl);
}

.page_moduleRow__bLWbh {
  display: flex;
  gap: var(--gds-space-md);
  padding: var(--gds-space-md) 0;
  border-bottom: 1px solid var(--gds-line-default);
}

.page_moduleStep__K7bzx {
  font-family: var(--gds-font-family-mono);
  font-size: var(--gds-font-size-2xl);
  line-height: 1;
  color: var(--gds-paper-50);
  flex-shrink: 0;
  width: 1.5rem;
  font-weight: var(--gds-font-weight-bold);
}

.page_moduleBody__Q8IZf {
  display: flex;
  flex-direction: column;
  gap: var(--gds-space-2xs);
  min-width: 0;
}

.page_moduleName__2teNh {
  font-size: var(--gds-font-size-lg);
  line-height: var(--gds-line-height-lg);
  font-weight: var(--gds-font-weight-bold);
  letter-spacing: -0.015em;
  color: var(--gds-text-primary);
}

.page_moduleDesc__sX_Ph {
  font-size: var(--gds-font-size-sm);
  line-height: var(--gds-line-height-md);
  color: var(--gds-text-secondary);
}

.page_moduleLink__r3mkf {
  margin-top: var(--gds-space-2xs);
  font-family: var(--gds-font-family-mono);
  font-size: var(--gds-font-size-2xs);
  letter-spacing: 0.08em;
  color: var(--gds-text-accent);
  border-bottom: 1px solid currentColor;
  align-self: flex-start;
  padding-bottom: 1px;
}

/* 원칙 — 인용문처럼 */
.page_principles__o8_nE {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: var(--gds-space-lg);
  gap: var(--gds-space-lg);
  margin-bottom: var(--gds-space-2xl);
}

.page_principle__QBgQJ {
  display: flex;
  flex-direction: column;
  gap: var(--gds-space-xs);
  padding-top: var(--gds-space-sm);
  border-top: 2px solid var(--gds-ink-90);
}

.page_principleTitle__5H1xx {
  font-size: var(--gds-font-size-md);
  line-height: var(--gds-line-height-md);
  font-weight: var(--gds-font-weight-bold);
  letter-spacing: -0.015em;
  color: var(--gds-text-primary);
}

.page_principleBody__d436Y {
  font-size: var(--gds-font-size-sm);
  line-height: var(--gds-line-height-md);
  color: var(--gds-text-secondary);
}

/* 진행 상태 — 체크리스트가 아니라 대장(臺帳) */
.page_ledger__Cno3G {
  border-top: 1px solid var(--gds-line-default);
}

.page_ledgerRow__F_Fjp {
  display: flex;
  align-items: center;
  gap: var(--gds-space-md);
  padding: var(--gds-space-sm) 0;
  border-bottom: 1px solid var(--gds-line-default);
  color: var(--gds-text-primary);
}

.page_ledgerRow__F_Fjp:hover .page_ledgerLabel__gk_lt {
  border-bottom-color: var(--gds-ink-90);
}

.page_ledgerMark__P8Y7v {
  font-family: var(--gds-font-family-mono);
  font-size: var(--gds-font-size-2xs);
  letter-spacing: 0.1em;
  color: var(--gds-text-tertiary);
  width: 3rem;
  flex-shrink: 0;
}

.page_ledgerDone__w9_54 {
  color: var(--gds-status-positive);
}

.page_ledgerLabel__gk_lt {
  font-size: var(--gds-font-size-md);
  border-bottom: 1px solid transparent;
}

@media (max-width: 900px) {
  .page_moduleList__KhfEi,
  .page_principles__o8_nE {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .page_principle__QBgQJ {
    margin-bottom: var(--gds-space-lg);
  }
}

@media (max-width: 700px) {
  .page_heroTitle__Gfler {
    font-size: var(--gds-font-size-4xl);
    line-height: 1.15;
  }

  .page_heroSub__YNSLe {
    font-size: var(--gds-font-size-md);
  }

  .page_ledgerRow__F_Fjp {
    min-height: 2.75rem;
  }
}

/*!**************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/components/common/Card/Card.module.css ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************/
/* 떠 있는 카드가 아니라 얹힌 종이 한 장. 그림자 없이 헤어라인으로만 구분한다. */
.Card_card__WToJC {
  background: var(--gds-bg-surface-default);
  border: 1px solid var(--gds-line-default);
  border-radius: var(--gds-radius-lg);
  padding: var(--gds-space-lg);
  margin-bottom: var(--gds-space-md);
}

.Card_card__WToJC:last-child {
  margin-bottom: 0;
}

@media (max-width: 700px) {
  .Card_card__WToJC {
    padding: var(--gds-space-md);
  }
}

/*!****************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/components/common/Badge/Badge.module.css ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************/
/* 라벨은 알약이 아니라 도장에 가깝게 — 각지고, 채우지 않고, 선으로만 구분한다. */
.Badge_badge__ax0Ud {
  display: inline-flex;
  align-items: center;
  gap: var(--gds-space-2xs);
  padding: 0 var(--gds-space-2xs);
  height: 1.25rem;
  border-radius: var(--gds-radius-sm);
  border: 1px solid;
  background: transparent;
  font-family: var(--gds-font-family-mono);
  font-size: var(--gds-font-size-2xs);
  line-height: 1;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.Badge_positive__PLOsR {
  color: var(--gds-status-positive);
  border-color: var(--gds-status-positive-line);
  background: var(--gds-status-positive-subtle);
}

.Badge_caution__wNPxm {
  color: var(--gds-status-caution);
  border-color: var(--gds-status-caution-line);
  background: var(--gds-status-caution-subtle);
}

.Badge_neutral__4GdCM {
  color: var(--gds-status-neutral);
  border-color: var(--gds-status-neutral-line);
}

.Badge_negative__6FEzX {
  color: var(--gds-status-negative);
  border-color: var(--gds-status-negative-line);
  background: var(--gds-status-negative-subtle);
}

.Badge_info__ezmQp {
  color: var(--gds-status-info);
  border-color: var(--gds-status-info-line);
}

.Badge_special__MIifv {
  color: var(--gds-status-special);
  border-color: var(--gds-status-special-line);
}

/*!******************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/components/common/Button/Button.module.css ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************/
.Button_button__kf4LD {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--gds-space-2xs);
  padding: var(--gds-space-xs) var(--gds-space-md);
  border-radius: var(--gds-radius-md);
  font-size: var(--gds-font-size-md);
  line-height: var(--gds-line-height-md);
  font-weight: var(--gds-font-weight-medium);
  letter-spacing: -0.01em;
  transition: background 0.12s ease, border-color 0.12s ease;
}

.Button_button__kf4LD:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* 주 동작은 잉크로 채운다 — 화면에서 가장 진한 것이 가장 중요한 것이다 */
.Button_primary__Q2Cf4 {
  background: var(--gds-component-primary);
  color: var(--gds-text-inverse);
  border: 1px solid var(--gds-component-primary);
}

.Button_primary__Q2Cf4:not(:disabled):hover {
  background: var(--gds-component-primary-hover);
}

.Button_ghost__DqyOG {
  background: transparent;
  color: var(--gds-text-primary);
  border: 1px solid var(--gds-line-strong);
}

.Button_ghost__DqyOG:not(:disabled):hover {
  background: var(--gds-bg-surface-hover);
  border-color: var(--gds-ink-50);
}

.Button_small__EJsnr {
  padding: var(--gds-space-2xs) var(--gds-space-xs);
  font-size: var(--gds-font-size-sm);
  line-height: var(--gds-line-height-sm);
}

@media (max-width: 900px) {
  .Button_button__kf4LD {
    min-height: 2.75rem;
  }

  .Button_small__EJsnr {
    min-height: 2.5rem;
    padding: var(--gds-space-2xs) var(--gds-space-sm);
  }
}

/*!**************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/components/common/PageHeader/PageHeader.module.css ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************/
.PageHeader_header__mfnKO {
  display: flex;
  flex-direction: column;
  gap: var(--gds-space-xs);
  padding-bottom: var(--gds-space-md);
  margin-bottom: var(--gds-space-lg);
  border-bottom: 1px solid var(--gds-ink-90);
}

.PageHeader_title__Nw1Nj {
  font-size: var(--gds-font-size-4xl);
  line-height: var(--gds-line-height-4xl);
  font-weight: var(--gds-font-weight-bold);
  letter-spacing: -0.025em;
  color: var(--gds-text-primary);
}

.PageHeader_description___oZ_I {
  font-size: var(--gds-font-size-md);
  line-height: var(--gds-line-height-lg);
  color: var(--gds-text-secondary);
  max-width: 44rem;
}

@media (max-width: 700px) {
  .PageHeader_title__Nw1Nj {
    font-size: var(--gds-font-size-2xl);
    line-height: var(--gds-line-height-2xl);
  }

  .PageHeader_header__mfnKO {
    margin-bottom: var(--gds-space-md);
  }
}

/*!****************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/components/common/Meter/Meter.module.css ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************/
.Meter_meter__RoiFD {
  display: flex;
  align-items: center;
  gap: var(--gds-space-xs);
}

.Meter_track__xmrDy {
  flex: 1 1;
  height: 0.375rem;
  min-width: var(--gds-space-3xl);
  background: var(--gds-paper-40);
  border-radius: var(--gds-radius-sm);
  overflow: hidden;
}

.Meter_fill__fmQsa {
  height: 100%;
  transition: width 0.25s ease;
}

.Meter_accent___sHMI {
  background: var(--gds-ink-80);
}

.Meter_positive__8u3DT {
  background: var(--gds-status-positive);
}

.Meter_caution__U0UA_ {
  background: var(--gds-status-caution);
}

.Meter_label__zx5lC {
  font-family: var(--gds-font-family-mono);
  font-size: var(--gds-font-size-xs);
  line-height: var(--gds-line-height-xs);
  color: var(--gds-text-secondary);
  min-width: 2.5rem;
  text-align: right;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
}

/*!********************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/components/common/Callout/Callout.module.css ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************/
/* 여백 위에 얹는 상자가 아니라, 왼쪽에 굵은 선을 그은 방주(傍註) */
.Callout_callout__PZ_Mi {
  display: flex;
  flex-direction: column;
  gap: var(--gds-space-2xs);
  padding: var(--gds-space-sm) var(--gds-space-md);
  border-left: 2px solid;
  margin: var(--gds-space-md) 0;
}

.Callout_info__ZdpMi {
  border-color: var(--gds-status-info);
  background: var(--gds-status-info-subtle);
}

.Callout_caution__9Mt5m {
  border-color: var(--gds-status-caution);
  background: var(--gds-status-caution-subtle);
}

.Callout_title__s4bKS {
  font-family: var(--gds-font-family-mono);
  font-size: var(--gds-font-size-2xs);
  line-height: var(--gds-line-height-2xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gds-text-primary);
}

.Callout_body__wLkLI {
  font-size: var(--gds-font-size-sm);
  line-height: var(--gds-line-height-md);
  color: var(--gds-text-secondary);
}

/*!**************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/components/common/EmptyState/EmptyState.module.css ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************/
.EmptyState_empty__YIshS {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--gds-space-xs);
  padding: var(--gds-space-2xl) 0;
  border-top: 1px solid var(--gds-line-default);
  border-bottom: 1px solid var(--gds-line-default);
}

.EmptyState_title__DJJJO {
  font-size: var(--gds-font-size-xl);
  line-height: var(--gds-line-height-xl);
  font-weight: var(--gds-font-weight-bold);
  letter-spacing: -0.02em;
  color: var(--gds-text-primary);
}

.EmptyState_hint__qGZJu {
  font-size: var(--gds-font-size-sm);
  line-height: var(--gds-line-height-md);
  color: var(--gds-text-secondary);
  max-width: 34rem;
}

.EmptyState_action__EvaHn {
  margin-top: var(--gds-space-xs);
}

