/* ============================================================================
 * service-mascots.jsx — 증상별 "실제 꽃 + 꽃말" (얼굴 없음 · 우아/권위)
 *   window.SvcMascot({ k, size })   ·   window.SVC_BRIGHT   ·   window.SVC_FLOWER
 * ========================================================================== */

const SM_INK = '#5a4633';
const SM_LEAF = '#7d9a6a';
const GOLD = '#cba24a';
const IO = 0.3;

const SVC_BRIGHT = {
  depression: '#d99a3a', anxiety: '#5fa06a', sleep: '#5d54c0', burnout: '#bf5533',
  ptsd: '#6a6fb0', ocd: '#3f8f86', bipolar: '#b0548f', autism: '#2f9ec4',
  adhd: '#e8702a', learning: '#4f7fc0', peak: '#c43b6e',
};

const SM_LIGHT = {
  depression: '#f0c878', anxiety: '#9ccf9f', sleep: '#9a92e0', burnout: '#e69a6a',
  ptsd: '#a3a6d6', ocd: '#9fd0c9', bipolar: '#d68cc0', autism: '#88cbe2',
  adhd: '#f0a070', learning: '#9bb8e0', peak: '#e487a8',
};

const SVC_FLOWER = {
  depression: { en: 'Daffodil', ko: '수선화', mEn: 'hope · new beginnings', mKo: '희망 · 새 시작' },
  anxiety:    { en: 'Chamomile', ko: '캐모마일', mEn: 'calm · healing', mKo: '평온 · 치유' },
  sleep:      { en: 'Lavender', ko: '라벤더', mEn: 'rest · serenity', mKo: '안식 · 평온' },
  burnout:    { en: 'Sunflower', ko: '해바라기', mEn: 'warmth · recovery', mKo: '온기 · 회복' },
  ptsd:       { en: 'Iris', ko: '붓꽃', mEn: 'courage · hope', mKo: '용기 · 희망' },
  ocd:        { en: 'Daisy', ko: '데이지', mEn: 'purity · order', mKo: '순수 · 정돈' },
  bipolar:    { en: 'Cosmos', ko: '코스모스', mEn: 'harmony · balance', mKo: '조화 · 균형' },
  autism:     { en: 'Cornflower', ko: '수레국화', mEn: 'clarity · focus', mKo: '또렷함 · 집중' },
  adhd:       { en: 'Gerbera', ko: '거베라', mEn: 'energy · cheer', mKo: '활기 · 생기' },
  learning:   { en: 'Forget-me-not', ko: '물망초', mEn: 'memory', mKo: '기억 · 배움' },
  peak:       { en: 'Tulip', ko: '튤립', mEn: 'achievement · standing tall', mKo: '성취 · 우뚝' },
};

// 증상 → 꽃 모양
const SHAPE_OF = {
  depression: 'daffodil', anxiety: 'chamomile', sleep: 'lavender', burnout: 'sunflower',
  ptsd: 'iris', ocd: 'daisy', bipolar: 'cosmos', autism: 'cornflower',
  adhd: 'gerbera', learning: 'forgetmenot', peak: 'tulip',
};

const stem = (toY) => <path d={`M50 92 L50 ${toY}`} stroke={SM_LEAF} strokeWidth="2.6" fill="none" strokeLinecap="round" />;
const leaf = (y, dir) => <path d={`M50 ${y} Q${50 + dir * 16} ${y - 4} ${50 + dir * 22} ${y + 6} Q${50 + dir * 8} ${y + 8} 50 ${y + 2}Z`} fill={SM_LEAF} stroke={SM_INK} strokeWidth="0.7" strokeOpacity={IO} />;
const radial = (n, rx, ry, fill, rot) => { const o = []; for (let i = 0; i < n; i++) o.push(<ellipse key={fill + rot + i} cx="50" cy={48 - ry} rx={rx} ry={ry} fill={fill} stroke={SM_INK} strokeWidth="1" strokeOpacity={IO} transform={`rotate(${rot + i * 360 / n} 50 48)`} />); return o; };

const FLOWERS = {
  // 수선화 — 별모양 6장 + 가운데 트럼펫(컵)
  daffodil: (c, l) => (<g>
    {stem(58)}{leaf(74, -1)}{leaf(80, 1)}
    {radial(6, 8, 15, l, 0)}
    <circle cx="50" cy="48" r="11" fill={c} stroke={SM_INK} strokeWidth="1" strokeOpacity={IO} />
    <circle cx="50" cy="48" r="6.5" fill="#fff8ec" stroke={c} strokeWidth="2" />
  </g>),
  // 라벤더 — 세로 줄기에 작은 봉오리
  lavender: (c, l) => (<g>
    <path d="M50 92 L50 22" stroke={SM_LEAF} strokeWidth="2.6" strokeLinecap="round" />
    {leaf(72, -1)}{leaf(78, 1)}
    {[0, 1, 2, 3, 4, 5, 6].map((i) => { const y = 22 + i * 8, r = 3.4 + i * 0.5; const dx = i % 2 ? 4 : -4; return <g key={i}><ellipse cx={50 + dx} cy={y} rx={r} ry={r * 1.5} fill={c} stroke={SM_INK} strokeWidth="0.7" strokeOpacity={IO} /><ellipse cx={50 - dx * 0.6} cy={y + 3} rx={r * 0.8} ry={r * 1.2} fill={l} opacity="0.85" /></g>; })}
  </g>),
  // 양귀비 — 넓은 4장 + 검은 가운데
  poppy: (c, l) => (<g>
    {stem(56)}{leaf(76, -1)}
    {radial(4, 14, 16, c, 45)}
    {radial(4, 11, 13, l, 0)}
    <circle cx="50" cy="48" r="8" fill="#3a2f3a" />
    {[...Array(8)].map((_, i) => { const a = i * 45 * Math.PI / 180; return <circle key={i} cx={50 + Math.cos(a) * 5.5} cy={48 + Math.sin(a) * 5.5} r="1.2" fill="#1e1820" />; })}
  </g>),
  // 캐모마일 — 가는 흰 꽃잎 다수 + 큰 노란 중심 (색조 입힘)
  chamomile: (c, l) => (<g>
    {stem(58)}{leaf(78, 1)}
    {radial(14, 3.4, 16, '#fbfdf6', 0)}
    {radial(14, 3.4, 16, c, 0).map((p) => React.cloneElement(p, { fill: 'none', stroke: c, strokeOpacity: 0.45 }))}
    <circle cx="50" cy="48" r="10" fill={GOLD} stroke={SM_INK} strokeWidth="1" strokeOpacity={IO} />
    <circle cx="50" cy="48" r="10" fill={c} opacity="0.22" />
  </g>),
  // 해바라기 — 뾰족 꽃잎 + 큰 갈색 중심
  sunflower: (c, l) => (<g>
    {stem(60)}{leaf(80, 1)}
    {radial(16, 5, 18, c, 0)}
    {radial(16, 4.2, 13, l, 11)}
    <circle cx="50" cy="48" r="11.5" fill="#6b4a2a" stroke={SM_INK} strokeWidth="1" strokeOpacity={IO} />
    {[...Array(12)].map((_, i) => { const a = i * 30 * Math.PI / 180; return <circle key={i} cx={50 + Math.cos(a) * 6.4} cy={48 + Math.sin(a) * 6.4} r="1" fill="#3e2a16" />; })}
  </g>),
  // 붓꽃 — 위 3장 + 아래로 늘어진 3장
  iris: (c, l) => (<g>
    {stem(60)}{leaf(78, -1)}
    <path d="M50 50 Q40 70 35 86 Q50 80 50 58Z" fill={c} stroke={SM_INK} strokeWidth="1" strokeOpacity={IO} />
    <path d="M50 50 Q30 60 18 74 Q34 72 50 58Z" fill={c} stroke={SM_INK} strokeWidth="1" strokeOpacity={IO} />
    <path d="M50 50 Q70 60 82 74 Q66 72 50 58Z" fill={c} stroke={SM_INK} strokeWidth="1" strokeOpacity={IO} />
    <path d="M50 50 Q45 30 50 16 Q55 30 50 50Z" fill={l} stroke={SM_INK} strokeWidth="1" strokeOpacity={IO} />
    <path d="M50 50 Q34 40 28 26 Q44 34 50 48Z" fill={l} stroke={SM_INK} strokeWidth="1" strokeOpacity={IO} />
    <path d="M50 50 Q66 40 72 26 Q56 34 50 48Z" fill={l} stroke={SM_INK} strokeWidth="1" strokeOpacity={IO} />
    <path d="M50 58 q-3 10 0 18 M50 58 q-12 6 -16 14 M50 58 q12 6 16 14" stroke={GOLD} strokeWidth="1.6" fill="none" strokeLinecap="round" opacity="0.8" />
  </g>),
  // 데이지 — 가지런한 꽃잎 + 노란 중심
  daisy: (c, l) => (<g>
    {stem(58)}{leaf(78, 1)}
    {radial(16, 4, 15, '#fbf6ec', 0)}
    {radial(16, 4, 15, c, 0).map((p) => React.cloneElement(p, { fill: 'none', stroke: c, strokeOpacity: 0.5 }))}
    <circle cx="50" cy="48" r="9" fill={GOLD} stroke={SM_INK} strokeWidth="1" strokeOpacity={IO} />
  </g>),
  // 수국 — 작은 네잎 꽃송이 군집
  hydrangea: (c, l) => (<g>
    {stem(64)}{leaf(80, -1)}
    {[[50, 36], [38, 44], [62, 44], [30, 56], [50, 52], [70, 56], [44, 62], [58, 62]].map((p, i) => {
      const col = i % 2 ? l : c;
      return <g key={i}>{[0, 90, 180, 270].map((a) => <ellipse key={a} cx={p[0]} cy={p[1] - 5} rx="3.2" ry="5" fill={col} stroke={SM_INK} strokeWidth="0.6" strokeOpacity={IO} transform={`rotate(${a} ${p[0]} ${p[1]})`} />)}<circle cx={p[0]} cy={p[1]} r="1.6" fill={GOLD} /></g>;
    })}
  </g>),
  // 코스모스 — 넓은 8장 + 노란 중심
  cosmos: (c, l) => (<g>
    {stem(58)}{leaf(76, 1)}
    {radial(8, 7, 16, c, 0)}
    {radial(8, 6, 15, l, 0).map((p) => React.cloneElement(p, { opacity: 0.45 }))}
    <circle cx="50" cy="48" r="7.5" fill={GOLD} stroke={SM_INK} strokeWidth="1" strokeOpacity={IO} />
  </g>),
  // 수레국화 — 갈래진 별 꽃잎 2겹 + 작은 중심
  cornflower: (c, l) => (<g>
    {stem(58)}{leaf(76, -1)}
    {radial(7, 5.6, 17, c, 0)}
    {radial(7, 5.6, 17, c, 360 / 14).map((p) => React.cloneElement(p, { opacity: 0.7 }))}
    {radial(7, 3.2, 10, l, 0)}
    <circle cx="50" cy="48" r="5" fill={l} stroke={SM_INK} strokeWidth="0.8" strokeOpacity={IO} />
    {[...Array(6)].map((_, i) => { const a = i * 60 * Math.PI / 180; return <circle key={i} cx={50 + Math.cos(a) * 3} cy={48 + Math.sin(a) * 3} r="0.9" fill={c} />; })}
  </g>),
  // 거베라 — 이중 꽃잎 + 진한 중심
  gerbera: (c, l) => (<g>
    {stem(60)}{leaf(80, -1)}
    {radial(16, 4.5, 17, c, 0)}
    {radial(16, 3.6, 11, l, 11)}
    <circle cx="50" cy="48" r="8.5" fill="#7a3f24" />
    <circle cx="50" cy="48" r="8.5" fill={c} opacity="0.3" />
    {[...Array(12)].map((_, i) => { const a = i * 30 * Math.PI / 180; return <circle key={i} cx={50 + Math.cos(a) * 6} cy={48 + Math.sin(a) * 6} r="1" fill="#4a2516" />; })}
  </g>),
  // 물망초 — 작은 다섯잎 꽃 군집
  forgetmenot: (c, l) => (<g>
    {stem(64)}{leaf(80, 1)}
    {[[50, 38], [37, 46], [63, 46], [44, 58], [58, 58]].map((p, i) => (
      <g key={i}>{[0, 72, 144, 216, 288].map((a) => <ellipse key={a} cx={p[0]} cy={p[1] - 5} rx="3" ry="4.4" fill={c} stroke={SM_INK} strokeWidth="0.5" strokeOpacity={IO} transform={`rotate(${a} ${p[0]} ${p[1]})`} />)}<circle cx={p[0]} cy={p[1]} r="2" fill={GOLD} /></g>
    ))}
  </g>),
  // 연꽃 — 위로 벌어진 겹 꽃잎
  lotus: (c, l) => (<g>
    <ellipse cx="50" cy="84" rx="34" ry="6" fill={SM_LEAF} opacity="0.4" />
    <path d="M50 70 Q30 60 22 40 Q40 52 50 66Z" fill={l} stroke={SM_INK} strokeWidth="1" strokeOpacity={IO} />
    <path d="M50 70 Q70 60 78 40 Q60 52 50 66Z" fill={l} stroke={SM_INK} strokeWidth="1" strokeOpacity={IO} />
    <path d="M50 70 Q34 56 32 34 Q46 48 50 66Z" fill={c} stroke={SM_INK} strokeWidth="1" strokeOpacity={IO} />
    <path d="M50 70 Q66 56 68 34 Q54 48 50 66Z" fill={c} stroke={SM_INK} strokeWidth="1" strokeOpacity={IO} />
    <path d="M50 70 Q42 46 50 26 Q58 46 50 70Z" fill={c} stroke={SM_INK} strokeWidth="1.1" strokeOpacity={IO} />
    <ellipse cx="50" cy="64" rx="6" ry="5" fill={GOLD} stroke={SM_INK} strokeWidth="0.8" strokeOpacity={IO} />
  </g>),
  // 튤립 — 우뚝 선 컵 (성취)
  tulip: (c, l) => (<g>
    <path d="M50 92 L50 50" stroke={SM_LEAF} strokeWidth="2.6" strokeLinecap="round" />
    <path d="M50 74 Q33 72 29 86 Q44 88 50 80Z" fill={SM_LEAF} stroke={SM_INK} strokeWidth="0.7" strokeOpacity={IO} />
    <path d="M50 80 Q67 76 71 90 Q56 92 50 84Z" fill={SM_LEAF} stroke={SM_INK} strokeWidth="0.7" strokeOpacity={IO} />
    <path d="M36 46 Q34 22 50 16 Q66 22 64 46 Q57 54 50 54 Q43 54 36 46Z" fill={c} stroke={SM_INK} strokeWidth="1" strokeOpacity={IO} />
    <path d="M44 22 Q42 36 47 50 Q50 40 50 20 Q47 19 44 22Z" fill={l} opacity="0.55" />
    <path d="M42 20 Q40 38 46 52 M58 20 Q60 38 54 52" fill="none" stroke={SM_INK} strokeWidth="0.8" strokeOpacity={IO} />
  </g>),
};

function SvcMascot({ k, size = 100 }) {
  const shape = SHAPE_OF[k] || 'daffodil';
  const draw = FLOWERS[shape] || FLOWERS.daffodil;
  const c = SVC_BRIGHT[k] || '#c2774f';
  const l = SM_LIGHT[k] || '#e6c79a';
  return (
    <svg viewBox="0 0 100 100" width={size} height={size} style={{ display: 'block', overflow: 'visible' }}>
      {draw(c, l)}
    </svg>
  );
}

Object.assign(window, { SvcMascot, SVC_BRIGHT, SVC_FLOWER });
