/* 사주판(만세력) 공용 스타일 — public/js/sajupan.js 와 한 쌍. 온보딩·티저 공통.
   불투명한 먹색 판 위에 오행 색 칸: 캐릭터 아트 위에서도 대비가 무너지지 않게 한다. */
.jf-pan {
  --pan-bg: #101119;
  --pan-line: rgba(232, 196, 98, 0.35);
  --pan-gold: #e8c462;
  --pan-dim: #a9a5b6;
  --wood: #2f9e6b;
  --fire: #d64545;
  --earth: #d9a13b;
  --metal: #e9ebf1;
  --water: #3b6fd6;
  background: var(--pan-bg);
  border: 1px solid var(--pan-line);
  border-radius: 14px;
  padding: 12px 10px 10px;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.45), inset 0 0 0 1px rgba(255, 255, 255, 0.03);
  color: #f3f1ea;
  font-family: 'Noto Sans KR', system-ui, sans-serif;
}
.jf-pan-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
}
.jf-pan-col { display: flex; flex-direction: column; align-items: stretch; gap: 4px; min-width: 0; }
.jf-pan-label {
  font-size: 12px; font-weight: 700; letter-spacing: .06em; color: var(--pan-dim); text-align: center;
  display: flex; align-items: center; justify-content: center; gap: 4px; height: 18px;
}
.jf-pan-col.me .jf-pan-label { color: var(--pan-gold); }
.jf-pan-label em {
  font-style: normal; font-size: 10px; font-weight: 800; line-height: 1;
  padding: 2px 5px; border-radius: 999px; background: var(--pan-gold); color: #1a1200;
}
.jf-pan-tg {
  font-size: 11.5px; font-weight: 600; color: var(--pan-dim); text-align: center; height: 16px; line-height: 16px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.jf-pan-box {
  position: relative;
  height: 66px;
  border-radius: 10px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  color: #fff;
  box-shadow: inset 0 -3px 0 rgba(0, 0, 0, 0.18), 0 2px 6px rgba(0, 0, 0, 0.35);
}
.jf-pan-box.wood { background: var(--wood); }
.jf-pan-box.fire { background: var(--fire); }
.jf-pan-box.earth { background: var(--earth); color: #2a1d05; }
.jf-pan-box.metal { background: var(--metal); color: #1d2230; }
.jf-pan-box.water { background: var(--water); }
.jf-pan-box.empty { background: rgba(255, 255, 255, 0.05); border: 1px dashed rgba(255, 255, 255, 0.18); color: var(--pan-dim); box-shadow: none; }
.jf-pan-box.me { outline: 2px solid var(--pan-gold); outline-offset: 1px; }
.jf-pan-hanja {
  font-size: 30px; font-weight: 800; line-height: 1;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
}
.jf-pan-box.earth .jf-pan-hanja, .jf-pan-box.metal .jf-pan-hanja { text-shadow: none; }
.jf-pan-hanja.dash { font-size: 22px; font-weight: 400; text-shadow: none; }
.jf-pan-ko { font-size: 11.5px; font-weight: 700; line-height: 1; margin-top: 5px; opacity: .92; }
.jf-pan-legend {
  display: flex; justify-content: center; flex-wrap: wrap; gap: 6px 12px;
  margin-top: 10px; padding-top: 9px; border-top: 1px solid rgba(255, 255, 255, 0.07);
  font-size: 12.5px; color: #f3f1ea;
}
.jf-pan-el { display: inline-flex; align-items: center; gap: 4px; }
.jf-pan-el.zero { opacity: .45; }
.jf-pan-el b { font-weight: 700; }
.jf-pan-el .dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }
.jf-pan-el .dot.wood { background: var(--wood); }
.jf-pan-el .dot.fire { background: var(--fire); }
.jf-pan-el .dot.earth { background: var(--earth); }
.jf-pan-el .dot.metal { background: var(--metal); }
.jf-pan-el .dot.water { background: var(--water); }

@media (max-width: 360px) {
  .jf-pan-hanja { font-size: 26px; }
  .jf-pan-box { height: 60px; }
}
