// nav.jsx — Sidebar + topbar + role switcher const NAV_GROUPS = [ { label: "환자 상담 플로우", role: ["patient", "manager", "doctor"], items: [ { id: "intake", label: "체크인 · 문진", ico: "Intake", short: "01" }, { id: "capture", label: "피부 촬영", ico: "Camera", short: "02" }, { id: "analysis", label: "AI 진단 결과", ico: "Brain", short: "03" }, { id: "report", label: "세부 지표 리포트", ico: "Report", short: "04" }, { id: "recommend", label: "시술 추천 · 패키지", ico: "Recommend",short: "05" }, { id: "ba", label: "B&A 3D · 시뮬레이션", ico: "Compare", short: "06" }, ], }, { label: "진료 / 운영", role: ["doctor", "manager"], items: [ { id: "chart", label: "Smart Chart Auto-fill", ico: "Doc", short: "07" }, { id: "revisit", label: "재방문 관리 · 알림톡", ico: "Bell", short: "08" }, ], }, { label: "클리닉 운영", role: ["manager"], items: [ { id: "devices", label: "Connected Devices", ico: "Device", short: "09" }, { id: "bi", label: "운영 BI Dashboard", ico: "Bi", short: "10" }, ], }, ]; const ROLES = [ { v: "patient", l: "환자", ico: "User", desc: "환자 본인이 직접 사용" }, { v: "manager", l: "실장", ico: "Manager", desc: "상담 실장 응대 도구" }, { v: "doctor", l: "의사", ico: "Doctor", desc: "진료·시술 결정" }, ]; const PHASES = [ { v: "1", l: "Prototype", desc: "UI 흐름 · 샘플 데이터" }, { v: "2", l: "Beta", desc: "실 데이터 · 핵심 AI" }, { v: "3", l: "Launch", desc: "상용 · 보안·확장성" }, ]; function Sidebar({ route, setRoute, role, persona, onAbout }) { const Icons = window.Icons; return ( ); } function TopBar({ role, setRole, route, persona, phase }) { const Icons = window.Icons; const currentItem = NAV_GROUPS.flatMap(g => g.items).find(i => i.id === route); return (