/* 텍스트 컬러 유틸 */
.fc-text { color: var(--color-text) }
.fc-weak { color: var(--color-text-weak) }
.fc-inv { color: var(--color-text-inv) }
.fc-primary { color: var(--primary) }
.fc-blue { color: var(--accent-blue) }
.fc-orange { color: var(--accent-orange) }
.fc-pink { color: var(--accent-pink) }
.fc-ok { color: var(--state-ok) }
.fc-warn { color: var(--state-warn) }
.fc-err { color: var(--state-err) }
.fc-black { color: #000 }
.fc-wh { color: #fff }

/* 배경 유틸 */
.bg-white { background: #fff }
.bg-soft { background: var(--color-bg-soft) }
.bg-dark { background: var(--color-bg-dark); color: var(--color-text-inv) }
.bg-primary { background: var(--primary); color: var(--primary-contrast) }
.bg-primary-soft { background: var(--primary-soft) }

/* 보더 컬러 유틸 */
.bd { border: 1px solid var(--color-border) }
.bd-strong { border: 1px solid var(--color-border-strong) }
.bd-none { border: 0 }

/* 그라데이션 텍스트(타이틀 강조용) */
.fc-grd-gold { background-image: linear-gradient(135deg,#ebbf79,#ffefcf,#efc889,#e4a23e); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent }

/* 아웃라인(강조 타이틀 한정) */
.wh-outline { -webkit-text-stroke: 1px #fff; -webkit-text-fill-color: transparent }
.primary-outline { -webkit-text-stroke: 1px var(--primary); -webkit-text-fill-color: transparent }

/* 고대비 환경 접근성: 그라데이션 텍스트를 단색으로 대체 */
@media (prefers-contrast: more) {
    .fc-grd-gold { background-image: none; -webkit-text-fill-color: currentColor }
}
@media (forced-colors: active) {
    .fc-grd-gold { background-image: none; -webkit-text-fill-color: currentColor }
}
